{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 分类训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b'\\x00\\x00\\x00\\x02'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import struct\n",
    "struct.pack('>i', 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2051, 60000, 28, 28)\n"
     ]
    }
   ],
   "source": [
    "with open('./MNIST_data/train-images-idx3-ubyte', 'rb') as f:\n",
    "    buffer = f.read(4*4)\n",
    "    head = struct.unpack('>iiii', buffer)\n",
    "    print(head)\n",
    "    length = head[1] * head[2] * head[3]\n",
    "    buffer = f.read(length)\n",
    "    data = struct.unpack('{}B'.format(length), buffer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "47040000"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tuple"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "imgs = np.reshape(data, (head[1], head[2], head[3]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000, 28, 28)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "imgs.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAN80lEQVR4nO3df6hcdXrH8c+ncf3DrBpTMYasNhuRWBWbLRqLSl2RrD9QNOqWDVgsBrN/GHChhEr6xyolEuqP0qAsuYu6sWyzLqgYZVkVo6ZFCF5j1JjU1YrdjV6SSozG+KtJnv5xT+Su3vnOzcyZOZP7vF9wmZnzzJnzcLife87Md879OiIEYPL7k6YbANAfhB1IgrADSRB2IAnCDiRxRD83ZpuP/oEeiwiPt7yrI7vtS22/aftt27d281oAesudjrPbniLpd5IWSNou6SVJiyJia2EdjuxAj/XiyD5f0tsR8U5EfCnpV5Ku6uL1APRQN2GfJekPYx5vr5b9EdtLbA/bHu5iWwC61M0HdOOdKnzjND0ihiQNSZzGA03q5si+XdJJYx5/R9L73bUDoFe6CftLkk61/V3bR0r6kaR19bQFoG4dn8ZHxD7bSyU9JWmKpAci4o3aOgNQq46H3jraGO/ZgZ7ryZdqABw+CDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUii4ymbcXiYMmVKsX7sscf2dPtLly5tWTvqqKOK686dO7dYv/nmm4v1u+66q2Vt0aJFxXU///zzYn3lypXF+u23316sN6GrsNt+V9IeSfsl7YuIs+toCkD96jiyXxQRH9TwOgB6iPfsQBLdhj0kPW37ZdtLxnuC7SW2h20Pd7ktAF3o9jT+/Ih43/YJkp6x/V8RsWHsEyJiSNKQJNmOLrcHoENdHdkj4v3qdqekxyTNr6MpAPXrOOy2p9o++uB9ST+QtKWuxgDUq5vT+BmSHrN98HX+PSJ+W0tXk8zJJ59crB955JHF+nnnnVesX3DBBS1r06ZNK6577bXXFutN2r59e7G+atWqYn3hwoUta3v27Cmu++qrrxbrL7zwQrE+iDoOe0S8I+kvauwFQA8x9AYkQdiBJAg7kARhB5Ig7EASjujfl9om6zfo5s2bV6yvX7++WO/1ZaaD6sCBA8X6jTfeWKx/8sknHW97ZGSkWP/www+L9TfffLPjbfdaRHi85RzZgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJxtlrMH369GJ948aNxfqcOXPqbKdW7XrfvXt3sX7RRRe1rH355ZfFdbN+/6BbjLMDyRF2IAnCDiRB2IEkCDuQBGEHkiDsQBJM2VyDXbt2FevLli0r1q+44opi/ZVXXinW2/1L5ZLNmzcX6wsWLCjW9+7dW6yfccYZLWu33HJLcV3UiyM7kARhB5Ig7EAShB1IgrADSRB2IAnCDiTB9ewD4JhjjinW200vvHr16pa1xYsXF9e9/vrri/W1a9cW6xg8HV/PbvsB2zttbxmzbLrtZ2y/Vd0eV2ezAOo3kdP4X0i69GvLbpX0bEScKunZ6jGAAdY27BGxQdLXvw96laQ11f01kq6uuS8ANev0u/EzImJEkiJixPYJrZ5oe4mkJR1uB0BNen4hTEQMSRqS+IAOaFKnQ287bM+UpOp2Z30tAeiFTsO+TtIN1f0bJD1eTzsAeqXtabzttZK+L+l429sl/VTSSkm/tr1Y0u8l/bCXTU52H3/8cVfrf/TRRx2ve9NNNxXrDz/8cLHebo51DI62YY+IRS1KF9fcC4Ae4uuyQBKEHUiCsANJEHYgCcIOJMElrpPA1KlTW9aeeOKJ4roXXnhhsX7ZZZcV608//XSxjv5jymYgOcIOJEHYgSQIO5AEYQeSIOxAEoQdSIJx9knulFNOKdY3bdpUrO/evbtYf+6554r14eHhlrX77ruvuG4/fzcnE8bZgeQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJxtmTW7hwYbH+4IMPFutHH310x9tevnx5sf7QQw8V6yMjIx1vezJjnB1IjrADSRB2IAnCDiRB2IEkCDuQBGEHkmCcHUVnnnlmsX7PPfcU6xdf3Plkv6tXry7WV6xYUay/9957HW/7cNbxOLvtB2zvtL1lzLLbbL9ne3P1c3mdzQKo30RO438h6dJxlv9LRMyrfn5Tb1sA6tY27BGxQdKuPvQCoIe6+YBuqe3XqtP841o9yfYS28O2W/8zMgA912nYfybpFEnzJI1IurvVEyNiKCLOjoizO9wWgBp0FPaI2BER+yPigKSfS5pfb1sA6tZR2G3PHPNwoaQtrZ4LYDC0HWe3vVbS9yUdL2mHpJ9Wj+dJCknvSvpxRLS9uJhx9sln2rRpxfqVV17ZstbuWnl73OHir6xfv75YX7BgQbE+WbUaZz9iAisuGmfx/V13BKCv+LoskARhB5Ig7EAShB1IgrADSXCJKxrzxRdfFOtHHFEeLNq3b1+xfskll7SsPf/888V1D2f8K2kgOcIOJEHYgSQIO5AEYQeSIOxAEoQdSKLtVW/I7ayzzirWr7vuumL9nHPOaVlrN47eztatW4v1DRs2dPX6kw1HdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgnH2SW7u3LnF+tKlS4v1a665plg/8cQTD7mnidq/f3+xPjJS/u/lBw4cqLOdwx5HdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgnH2w0C7sexFi8abaHdUu3H02bNnd9JSLYaHh4v1FStWFOvr1q2rs51Jr+2R3fZJtp+zvc32G7ZvqZZPt/2M7beq2+N63y6ATk3kNH6fpL+PiD+X9FeSbrZ9uqRbJT0bEadKerZ6DGBAtQ17RIxExKbq/h5J2yTNknSVpDXV09ZIurpXTQLo3iG9Z7c9W9L3JG2UNCMiRqTRPwi2T2ixzhJJS7prE0C3Jhx229+W9Iikn0TEx/a4c8d9Q0QMSRqqXoOJHYGGTGjozfa3NBr0X0bEo9XiHbZnVvWZknb2pkUAdWh7ZPfoIfx+Sdsi4p4xpXWSbpC0srp9vCcdTgIzZswo1k8//fRi/d577y3WTzvttEPuqS4bN24s1u+8886WtccfL//KcIlqvSZyGn++pL+V9LrtzdWy5RoN+a9tL5b0e0k/7E2LAOrQNuwR8Z+SWr1Bv7jedgD0Cl+XBZIg7EAShB1IgrADSRB2IAkucZ2g6dOnt6ytXr26uO68efOK9Tlz5nTUUx1efPHFYv3uu+8u1p966qli/bPPPjvkntAbHNmBJAg7kARhB5Ig7EAShB1IgrADSRB2IIk04+znnntusb5s2bJiff78+S1rs2bN6qinunz66acta6tWrSque8cddxTre/fu7agnDB6O7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQRJpx9oULF3ZV78bWrVuL9SeffLJY37dvX7FeuuZ89+7dxXWRB0d2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUjCEVF+gn2SpIcknSjpgKShiPhX27dJuknS/1ZPXR4Rv2nzWuWNAehaRIw76/JEwj5T0syI2GT7aEkvS7pa0t9I+iQi7ppoE4Qd6L1WYZ/I/Owjkkaq+3tsb5PU7L9mAXDIDuk9u+3Zkr4naWO1aKnt12w/YPu4FusssT1se7irTgF0pe1p/FdPtL8t6QVJKyLiUdszJH0gKST9k0ZP9W9s8xqcxgM91vF7dkmy/S1JT0p6KiLuGac+W9KTEXFmm9ch7ECPtQp729N425Z0v6RtY4NefXB30EJJW7ptEkDvTOTT+Ask/Yek1zU69CZJyyUtkjRPo6fx70r6cfVhXum1OLIDPdbVaXxdCDvQex2fxgOYHAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJ9HvK5g8k/c+Yx8dXywbRoPY2qH1J9NapOnv7s1aFvl7P/o2N28MRcXZjDRQMam+D2pdEb53qV2+cxgNJEHYgiabDPtTw9ksGtbdB7Uuit071pbdG37MD6J+mj+wA+oSwA0k0Enbbl9p+0/bbtm9toodWbL9r+3Xbm5uen66aQ2+n7S1jlk23/Yztt6rbcefYa6i322y/V+27zbYvb6i3k2w/Z3ub7Tds31Itb3TfFfrqy37r+3t221Mk/U7SAknbJb0kaVFEbO1rIy3YflfS2RHR+BcwbP+1pE8kPXRwai3b/yxpV0SsrP5QHhcR/zAgvd2mQ5zGu0e9tZpm/O/U4L6rc/rzTjRxZJ8v6e2IeCcivpT0K0lXNdDHwIuIDZJ2fW3xVZLWVPfXaPSXpe9a9DYQImIkIjZV9/dIOjjNeKP7rtBXXzQR9lmS/jDm8XYN1nzvIelp2y/bXtJ0M+OYcXCarer2hIb7+bq203j309emGR+YfdfJ9OfdaiLs401NM0jjf+dHxF9KukzSzdXpKibmZ5JO0egcgCOS7m6ymWqa8Uck/SQiPm6yl7HG6asv+62JsG+XdNKYx9+R9H4DfYwrIt6vbndKekyjbzsGyY6DM+hWtzsb7ucrEbEjIvZHxAFJP1eD+66aZvwRSb+MiEerxY3vu/H66td+ayLsL0k61fZ3bR8p6UeS1jXQxzfYnlp9cCLbUyX9QIM3FfU6STdU92+Q9HiDvfyRQZnGu9U042p43zU+/XlE9P1H0uUa/UT+vyX9YxM9tOhrjqRXq583mu5N0lqNntb9n0bPiBZL+lNJz0p6q7qdPkC9/ZtGp/Z+TaPBmtlQbxdo9K3ha5I2Vz+XN73vCn31Zb/xdVkgCb5BByRB2IEkCDuQBGEHkiDsQBKEHUiCsANJ/D+f1mbtgJ8kQQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "for i in range(5):\n",
    "    plt.imshow(imgs[i], cmap='gray')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\feature_extraction\\text.py:17: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working\n",
      "  from collections import Mapping, defaultdict\n"
     ]
    }
   ],
   "source": [
    "from sklearn.datasets.base import get_data_home"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C:\\Users\\baohuhe\\scikit_learn_data\n"
     ]
    }
   ],
   "source": [
    "print(get_data_home())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import fetch_mldata\n",
    "mnist = fetch_mldata('MNIST original', data_home='./')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "X, y = mnist['data'], mnist['target']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000, 784)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000,)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "some_digit = X[36000]\n",
    "some_digit_image = some_digit.reshape(28, 28)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(some_digit_image, cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.0"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y[36000]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 建立测试集和训练集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = X[:60000], X[60000:], y[:60000], y[60000:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 2205, 23198, 37746, ..., 33751, 18435, 47414])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将数据集合交叉洗牌，交叉验证时，每个子集合数据分布均匀，有些机器学习算法对训练实例的顺序敏感\n",
    "import numpy as np\n",
    "shuffle_index = np.random.permutation(60000)\n",
    "shuffle_index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, y_train = X_train[shuffle_index], y_train[shuffle_index]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练一个二元分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, ...,  True, False, False])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 识别数字5 ，二元分类5或者非5\n",
    "# 创建目标向量\n",
    "y_train_5 = (y_train == 5)\n",
    "y_train_5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False, False, False, ..., False, False, False],\n",
       "       [False, False, False, ..., False, False, False],\n",
       "       [False, False, False, ...,  True, False, False],\n",
       "       ...,\n",
       "       [False, False, False, ..., False,  True, False],\n",
       "       [False, False, False, ..., False, False, False],\n",
       "       [False, False, False, ...,  True, False, False]])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_5.reshape(20, -1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, ..., False, False, False])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test_5 = (y_test == 5)\n",
    "y_test_5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "# SGD 梯度下降 分类器， 适合非常大的数据集，独立处理训练集数据，一次一个，适合在线学习，\n",
    "from sklearn.linear_model import SGDClassifier\n",
    "\n",
    "sgd_clf = SGDClassifier(random_state = 42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "SGDClassifier(alpha=0.0001, average=False, class_weight=None, epsilon=0.1,\n",
       "       eta0=0.0, fit_intercept=True, l1_ratio=0.15,\n",
       "       learning_rate='optimal', loss='hinge', max_iter=None, n_iter=None,\n",
       "       n_jobs=1, penalty='l2', power_t=0.5, random_state=42, shuffle=True,\n",
       "       tol=None, verbose=0, warm_start=False)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sgd_clf.fit(X_train, y_train_5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sgd_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 性能考核"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用交叉验证测量精度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.95525, 0.95975, 0.96575])"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 评估分类器比评估回归器要困难得多\n",
    "\n",
    "# 3个折叠，正确率达到 95% 以上\n",
    "from sklearn.model_selection import cross_val_score\n",
    "cross_val_score(sgd_clf, X_train, y_train_5, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 把每张图都分类成 非5\n",
    "from sklearn.base import BaseEstimator\n",
    "class Never5Classifier(BaseEstimator):\n",
    "    def fit(self, X, y=None):\n",
    "        pass\n",
    "    def predict(self, X):\n",
    "        return np.zeros((len(X), 1), dtype=bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False],\n",
       "       [False],\n",
       "       [False],\n",
       "       ...,\n",
       "       [False],\n",
       "       [False],\n",
       "       [False]])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.zeros((len(X), 1), dtype=bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.90865, 0.91065, 0.90965])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "never_5_clf = Never5Classifier()\n",
    "cross_val_score(never_5_clf, X_train, y_train_5, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 准确率超过90% ，因为5的图像大约只有10%，你猜一张图不是5， 90%的时间你都是正确的\n",
    "* 这说明准确率无法成为分类器的首要性能指标，特别是当你处理偏科数据集， 某些类比其他类更为频繁"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "# 评估分类器性能的更好方法是混淆矩阵\n",
    "# A类别实例被分为B类别次数\n",
    "# 想要知道分类器将数字3和数字5混淆多少次，通过混淆矩阵的5行3列\n",
    "from sklearn.model_selection import cross_val_predict\n",
    "\n",
    "y_train_pred = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 与 cross_val_score 相比\n",
    "* 同样执行交叉验证\n",
    "* 返回的不是评估分数，是每个折叠的预测\n",
    "* 每一个实例在模型预测时使用的数据，在训练期间从未见过"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[54149,   430],\n",
       "       [ 1955,  3466]], dtype=int64)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "\n",
    "confusion_matrix(y_train_5, y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 行表示实际类别，列表示预测类别\n",
    "# 第一行 第一列 53272 被正确的分为 非5 ，真负类\n",
    "# 第一行 第二列 1307 被错误的分类成 5 ，假正类\n",
    "# 第二行 第一列 1077 张被错误的分为 非5， 假负类\n",
    "# 第二行 第二列 4344 张被正确的分在了5 ，真正类\n",
    "# 这种衡量方式太复杂，我们可以用更简单的指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[54579,     0],\n",
       "       [    0,  5421]], dtype=int64)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_perfect_predictions = y_train_5\n",
    "confusion_matrix(y_train_5, y_train_perfect_predictions)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "## 正类预测的准确率 被称为分类器的精度\n",
    "\n",
    "\n",
    "$\n",
    "\\text{精度} = \\cfrac{TP}{TP + FP}\n",
    "$\n",
    "\n",
    "TP是真正类的数量，FP是假正类的数量\n",
    "\n",
    "\n",
    "\n",
    "$\n",
    "\\text{召回率TPR} = \\cfrac{TP}{TP + FN}\n",
    "$\n",
    "* 检测正类实例的比例\n",
    "FN是假负类的数量"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 精度和召回率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8896303901437371"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import precision_score, recall_score\n",
    "\n",
    "precision_score(y_train_5, y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6393654307323372"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recall_score(y_train_5, y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 说明 检测一张图的时候，只有90%的概率是准确的，而且只有64%的数字5 被它检测出来\n",
    "# 精度和召回率合成单一指标，成为 F1 分数，谐波平均值\n",
    "# 平均值平等对待所有的值，谐波平均值会给予较低值更高的权重，只有召回率和精度都很高时，才能获得较高的F1分数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7440163142642481"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "f1_score(y_train_5, y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "# F1分数对那些具有相近精度和召回率 分类器更有利，这不一定符合你的期望\n",
    "# 有时候你更关心精度，有时你能关心召回率\n",
    "# 训练一个分类器检测儿童可以放心观看的视频，你可能要求拦截了很多好的视频，低召回率，保留下来的都是安全的视频，高精度\n",
    "# 不能同时增加精度并减少召回率，反之亦然"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 精度/召回率权衡"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![jupyter](./quanheng.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* SGDClassifier对每个实例基于决策函数计算一个分值，大于阀值为正类，否则为负类\n",
    "* 中间阀值右侧找到4个真正类 真5 ， 一个假正类 6， 精度为 4/5 80%\n",
    "* 在所有的6个 真正的5 中，分类器找到了4个，召回率为 4/6 67%\n",
    "* 提高阀值，向右移动，精度提高，召回降低\n",
    "* 反之阀值降低，召回提高，精度降低\n",
    "* SKlearn不可以直接设置阀值，可以访问决策分数，\n",
    "* SGDClassifier 默认阀值为0 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([79020.74962365])"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 返回决策值decision_function\n",
    "y_scores = sgd_clf.decision_function([some_digit])\n",
    "y_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "threshold = 0\n",
    "y_some_digit_pred = (y_scores > threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_some_digit_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False])"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 提高阀值可以降低召回率，提高阀值到200000，就错了这个图\n",
    "threshold = 200000\n",
    "y_some_digit_pred = (y_scores > threshold)\n",
    "y_some_digit_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "# 如何决定使用什么阀值\n",
    "# 返回决策值，而不是预测结果\n",
    "y_scores = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3,\n",
    "                             method=\"decision_function\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000,)"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 有了y_scores，可以计算所有可能的阀值的精度和召回率\n",
    "y_scores.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import precision_recall_curve\n",
    "\n",
    "precisions, recalls, thresholds = precision_recall_curve(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用matplotlib 绘制精度和召回相对于阀值的函数图\n",
    "def plot_precision_recall_vs_threshold(precisions, recalls, thresholds):\n",
    "    plt.plot(thresholds, precisions[:-1], \"b--\", label=\"Precision\", linewidth=2)\n",
    "    plt.plot(thresholds, recalls[:-1], \"g-\", label=\"Recall\", linewidth=2)\n",
    "    plt.xlabel(\"Threshold\", fontsize=16)\n",
    "    plt.legend(loc=\"upper left\", fontsize=16)\n",
    "    plt.ylim([0, 1])\n",
    "\n",
    "plt.figure(figsize=(8, 4))\n",
    "plot_precision_recall_vs_threshold(precisions, recalls, thresholds)\n",
    "plt.xlim([-700000, 700000])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf0AAAF5CAYAAACV7fNGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3dd5hU5d3/8c8XdmkLUmQpIoqgKDZA10Jsi1EfS9SIIsWINZhEk8fHRKNGoyFGo1HzGFuCkp+JJUiiITEhkZjHGjBmV8UKUSKIKEqTpYjI7v374571zC5bZnZnzj3l/bquuc73zJyZ+Xrci8+cdh9zzgkAABS+DqEbAAAA8SD0AQAoEoQ+AABFgtAHAKBIEPoAABQJQh8AgCJB6AMAUCRiD30z629mz7ayzAwzm29mV8XVFwAAhS7W0Dez3pJ+JamshWXGSeronBsjaaiZ7RZXfwAAFLK4t/RrJU2QVNPCMpWSZiXquZIOzXJPAAAUhZI4v8w5VyNJZtbSYmWSlifqNZL2a7yAmU2VNFWSSkp677/ddkM/f23NGj/dbTdpu+0y0DQAADmmurp6lXOuPN33xRr6KdogqWui7q4m9kY456ZLmi5JFRUVrqqq6vPXjjpK+vvfpbvu8vXChVLHjv5HAAAAhcDMlrblfbl49n61ol36IyUtacuHPPecdOSR0ogR0ujR0pYtmWoPAID8FHRL38z2lDTZOZd8lv5sSc+a2Q6SjpN0cDqfWVvrpz/4QfTcxo3S5s1Sp07p9+ictH59/IcKamulTZukHj0aPrd2rbRqVcPH6tVR/dFHvt8vfckf6li71s8fd5y0bp308cf+kVx//LH04ovSySdLXbv61xYvlsaP9++tqZHee89/5vr10oYNLU/feUfae2/p61+XJkyQuneXOneOd/0BALZluXhr3cRZ/kdLesY5t6KlZRvv3t9zT+nNN3191VXSddf5etYsH2KtcU564w1/iODZZ6Wnn5ZWrpR++lPp4otT63/rVuntt6W33vLhuXixn1+82D83eLB00EHSqFHSrrv6QH3vPWn58oZ1XZ3/vH32kT74wId7Dv7vSsvhh0vV1dLpp/sfCAsXSscf7+v16/2Pj8su8z+yTjjBH5pZv1765BNpwACp5dNBAKA4mFm1c64i7fflYuino3Ho33KLdOed0owZ0tixUUgceaQP8ua8+KL0m99Is2f7gG7KmjVSz57SokXSP/7hDyGsXeu3aBculBYskF55RXr9denTTzP4H5mkd2+pb9/mH3/4g5/27i316eP/e+rne/WKHj17RvWmTb7vvn192D7/vN8r0rOnn3/mGb+1vt12fs9Djx5+PnlaX69dK/3+9/5H1ocfZv6//957/R6NiRP9no+aGv9Yu1YqL5dKS/1/z047+T08NTXSDjv4+Q65eDALANqA0G/GuHE+hCQfEsn/8G/dKs2cKd1+u/TCC9Hzffv63eGHH+6D7/TTo9f69ImuEGjJkCHS7rtLw4b5x667SgMHSo8+6n+I3HCDVFHhw2jwYGnHHf1j0CA/7dfP72WQ/PsGDPChVpKLp142o67O/7f+5z/+sMNHH0nvvuvPr+jZ0//QSP4xMXeu3wvw/vvZ26Ox887S0sTpL8OHSyed5H8YrF/vv3f77aXf/Y49CgByG6HfjDlz/G5iyYf7scf6AJ49W7riCr+FLvkt3q98xR8COOQQv1u53ogR0XKS33I85BBp3jy/G76iQtp/f2nffaWRI/3ueC4XbJ+6Or+lXlbmf6jdeKP/EfTyy/5QR58+fh1vt53UrZvfOzF8uLRsmT8UMHiw1KWLP5zSFuPH+89yzv9QePxxf37CmDFS//7+R8HAgf4HQ0mJ//E2aJBfftMmf35Dv378eACQHYR+M5Yv91vO9Xr2lI45Rvrtb/38LrtIV14pTZ7sw6MpW7dKN9/sd5EffbR/T/0/5s7xD3uuq631h2w2b/Z7Fl5/XXrgAb8npkcP/8OhSxfpnHPa/10dOkTnYkj+8zt39od7TjstOhxRU+NPmFy40P9Y2Xtv/6OivNzvSerc2f9d9ekjffaZX37LFn+yZfIPUgDFidBvwV57+ZPzkpWVSddfL33ta207qx+F6Q9/8D8Uy8qkf//bb8G/+qo/36NfPx/SZv71IUOk114L1+vBB/sfBXPmSN//vnT22X6vhOR75McoULgI/RZMmyZdc000P2aM9OCDfosdyIQtW6JLO0tL/V6FOXP8lv7DD/st+frDEfV7Fz76yJ+YOH++vzJj5Ej/Y2LePL8XYtEi/1yPHv6k0bbq1k265x7pwAP9+SX8GADyH6Hfiq1bpW99y+82veEGvzsXyCd1df4wwaxZ0pIlfqv+gQdaviqlOd26ST/8oT8XZeed/V4LAPmD0AeKXF1dNJhUly7SihX+JNTNm1N7/4ABUmWldOml0n7b3PECQC5pa+hz5TJQIDp08Cf59erlQ3/IEH8lg3P+UVfnL5/cf3/pgAO2ff+KFf4S1v33j84JKC31VymcdZYfXApAfmNLHyhyH3wgXX65H0zp8cdbX/7AA/1gV6Wl/vLXCRMYZhmIG7v3AWTEO+/4QZJWrvSjMc6c2fp7ysqiSxUPO8yPj7D//n4o7H335eRBINMIfQBZVVPj74tQViZVVfmTY+fNS+29Eyf68TD22Se7PQLFgtAHELvaWn/p4bJlfg9Bly5+0KHbbvP3s2jKdddJU6b4EwdLS+PtFygUhD6AnLNypfTFL/oBjpqzdSujDALp4ux9ADmnvNzfWMk56Ve/anqZkhI/aubUqdIpp0hPPOFPKqytjbdXoBiwpQ8giFRP7rvwQn/Hy/HjOSEQqMeWPoC84pw/F+DGG/0Nrfbay9/roLE77/SXBXbo4IfQvuGG7N16GSh0bOkDyEkzZki//rW/N8Fnn237+kMPSaeeyg2zUJzY0gdQUM47T3r6aX8zo3fe8TfOSjZ5cnQL4i98wY8YWD/6IICmEfoAct6QIdLVV/tAr67e9vX58/3ogB06+IeZvx0ygIYIfQB5Zb/9oi366mppt92aXm7yZB/+J5/s7ysAgNAHkMf220/697+jGwrV1m57q+E//tHfNMhMGjXKXzq4cWOYfoHQCH0ABcHM79o/8kj/I+CVV7ZdZsEC6eyzpe7dpR139AMDAcWE0AdQkPbZJzoMsGKF9I1vNHx9+XI/DLCZdP31nACI4kDoAyh4/fv76/3rfwT06tXw9e99z+8lOOQQjv+jsBH6AIrO2rX++P+TTzZ8ft48f/y/Z0/p/POlNWvC9AdkC6EPoCh16CBVVvot/7ffbnjb35oaPzjQ9tv7Owey6x+FgtAHUPSGDfMn/n38sb/xT0lJ9Nqnn/ofCKNGEf7If4Q+ACT07Cn94hd+2N+6Oqlv3+i1BQt8+H/ySbj+gPYi9AGgCWbSypXS++83fL5bN2n16jA9Ae1F6ANACwYO9Lv1J0yInuvbV/rBD8L1BLQVoQ8AKZg5U5o0KZq/9lq/N+Dgg6Wf/CRYW0BaCH0ASNFDD/nL/ZL985/SZZf5HwDz5/tzAYBcRegDQBp69fK7+994Q7r55oavfeELUseO0sSJYXoDWkPoA0AbjBghffvbfst+9OiGrz38sN/yb2r8fyAkQh8A2sFMevFFv/Xf+Kz+kSP969dc48cAAEIj9AEgQ/r08eH/4IMNn582TerdW7rggjB9AfUIfQDIsMmT/W7/O+6Q9toren76dL/lX1LClj/CIPQBIAvMpAsvlF57bdsb99TW+i3//feXPvooTH8oToQ+AGRZ795+t//69X5Ev3ovvuhv+3vCCX6MfyDbCH0AiEn37tLGjdKyZQ2fnzPH383PTNqwIUxvKA6EPgDEbMcd/Zb/J59IhxzS8LUePfwhASAbCH0ACKRLF+m556StW6U99oie32cfv9W/alW43lCYCH0ACKxjR+nNN6UZMxo+X17u9wgAmULoA0COOPdcH/LJN/bp0EG6775gLaHAEPoAkGMeekg68MBo/pxzpOHDw/WDwkHoA0AO+uc/pf/8J5p/6y1u4Yv2I/QBIEftsov02WfRfP0tfNetC9cT8huhDwA5rKRE+uCDhs/16iVddJHf+gfSQegDQI4bMMCf4HfiidFzd97pj/PPnBmuL+QfQh8A8sQf/yhVV0t77x09N2mS9OMfh+sJ+YXQB4A8st9+0quv+kF96l1xhR/KF2gNoQ8AeeiQQ6R3343mTzjB7/IHWkLoA0CeGjxYevLJaP6ii6TFi8P1g9xH6ANAHquslFavjuaPPjpYK8gDhD4A5Lk+faTzzvP1O+9I998fth/kLkIfAArAbbdF9ZQp0vjx4XpB7oo99M1shpnNN7Ormnm9t5nNMbMqM/tF3P0BQD4qK5Peey+a/93v/Fn+QLJYQ9/Mxknq6JwbI2mome3WxGJnSnrQOVchqYeZVcTZIwDkq0GDpNraaH7ffaXtt/e37QWk+Lf0KyXNStRzJR3axDKrJe1tZr0kDZa0LJ7WACD/degg/e1v0fyaNdKee0pHHBGuJ+SOuEO/TNLyRL1GUv8mlnlO0s6SviXpzcRyDZjZ1MTu/6qVK1dmq1cAyEtHHeWH7b3++ui5Z57xN+tZsiRYW8gBcYf+BkldE3X3Zr7/Gklfc85Nk7RQ0jmNF3DOTXfOVTjnKsrLy7PWLADksyuukDZsaPjcLrtIf/lLmH4QXtyhX61ol/5ISUuaWKa3pH3MrKOkgyS5eFoDgMJTVua3+n+RdFr08cdLCxaE6wnhxB36syWdaWa3Sjpd0utmdl2jZW6QNF3SOkl9JP0m3hYBoPBMndrwhL5Ro6SXXgrXD8Iw5+LdkDaz3pKOlvSMc25Fez+voqLCVVVVtb8xACgC//iHdGjSKdR1df5YP/KLmVUnrnJLS+zX6Tvn1jrnZmUi8AEA6TnkEGnevGg+uUbhY0Q+ACgyY8ZE9aGHch1/MSH0AaAIPfJIVO+5p7R0abheEB9CHwCK0Lhx0n33RfNDhkgvvxyqG8SF0AeAInXWWdLXvhbNjx4tvftuuH6QfYQ+ABSxu++WHn88mt95Z+mxx8L1g+wi9AGgyB1zjDRzZjR/0kn+Mr5168L1hOwg9AEAmjBh27P4e/WS3n8/TD/IDkIfACBJ2mMPP1jPJZdEzw0aJK1gVJWCQegDAD5nJt1yi3T77dFzEyeG6weZRegDALZx0UXS+PG+fvpp6bPPwvaDzCD0AQBN+t//jepOncL1gcwh9AEATdphh4bX8VdUSFu2hOsH7UfoAwCadffdUV1dLXXuLG3dGq4ftA+hDwBoUV2dtO++0fz224frBe1D6AMAWmQmLVgglZT4+ZoaacaMsD2hbQh9AEBKNm6M6vPPl848M1wvaBtCHwCQkk6dpIULo/kHHpA++CBcP0gfoQ8ASNnuuzc8g3+HHaRly8L1g/QQ+gCAtJSWSl/9ajS/007S6tXh+kHqCH0AQNqmT284eE/fvlzDnw8IfQBAm/z3f0vXXhvNd+4crBWkiNAHALTZNddIY8dG88kn+iH3EPoAgHb5v/+Tunb19YgRYXtBywh9AEC7TZ0a1VdeGa4PtMycc6F7aJeKigpXVVUVug0AKGrOSR2SNiO3bPFn+SM7zKzaOVeR7vvY0gcAtJuZ9NFH0XynTtLy5eH6QdMIfQBARpSX+2v26+24o3TZZeH6wbYIfQBAxixdKo0fH83/5CfSunXh+kFDhD4AIKNmzZI2b47mv/jFcL2gIUIfAJBxnTtH1+9XV0u/+13YfuAR+gCArJgzJ6rHj5e40Co8Qh8AkBVdukj/+lc0f8AB4XqBR+gDALKmokL685+jeTOpri5cP8WO0AcAZNXxx0v77hvNd+wYrpdiR+gDALJuwYKG808/HaaPYkfoAwBikTzqe2VlsDaKGqEPAIjNPfdE9aWXhuujWHHDHQBArMyiOs8jKBhuuAMAyAvz50f1LbeE66MYEfoAgFgdfHBUf+c74fooRoQ+ACB2CxdG9XPPheuj2BD6AIDY7b57VB92WLg+ig2hDwAIYu7cqH711XB9FBNCHwAQxNFHR3XyiH3IHkIfABDMFVeE7qC4EPoAgGCuvTaqFy0K1kbRIPQBAMF06iR16+brPfYI20sxIPQBAEHdeWdUr1oVro9iQOgDAII6++yo/v73g7VRFAh9AEBwo0b56d13h+2j0BH6AIDgnngiqs88M1wfhY7QBwAEt/320g47+PqBB6StW8P2U6gIfQBATnjhhaguLQ3XRyEj9AEAOWHQIOnCC6P5++8P10uhIvQBADnjjjuiesoUyblwvRQiQh8AkFNeeimqf//7cH0UothD38xmmNl8M7uqleXuMrMT4+oLAJAbRo2Sevb09amnhu2l0MQa+mY2TlJH59wYSUPNbLdmljtM0gDn3GNx9gcAyA2//GVU19WF66PQxL2lXylpVqKeK+nQxguYWamkeyQtMbOT42sNAJArxo2L6rfeCtdHoYk79MskLU/UayT1b2KZKZLekHSTpAPN7JuNFzCzqWZWZWZVK1euzFqzAIBwunTx0zFjwvZRSOIO/Q2Suibq7s18/2hJ051zKyQ9IGls4wWcc9OdcxXOuYry8vKsNQsACOess/x07dqwfRSSuEO/WtEu/ZGSljSxzNuShibqCklLs98WACDXXH55VH/8cbg+CkncoT9b0plmdquk0yW9bmbXNVpmhqSxZvaMpG9IujnmHgEAOWDIkKiuvyEP2qckzi9zztWYWaWkoyXdlNiFv6DRMusljY+zLwBAbtpjD2nhQmnpUj8ef0msqVV4Yl99zrm1is7gBwCgWS+/HJ3QV1rKCH3txYh8AICc1bmzdMQR0fz114frpRAQ+gCAnPbkk1H9ve9JXKnddoQ+ACCnmUnvvBPN9+sXrpd8R+gDAHLekCHSj38czd90U7BW8pq5PD8roqKiwlVVVYVuAwAQA7OozvP4ahczq3bOVaT7Prb0AQB5Y9myqP7Rj8L1ka8IfQBA3thxx6i+6ip/7T5SR+gDAPLKokVR/dOfhusjHxH6AIC8Mny41L27r2fMCNtLviH0AQB5p/7s/UWLpIcfDttLPiH0AQB5p/62u5I0cWK4PvINoQ8AyDvduvlx+eutXx+ul3xC6AMA8tLIkVH9+OPh+sgnGQ99M+ua6c8EAKApY8b4KTfiSU2roW9mnczssETd0cxObOUtPzSzaRnpDgCAFuy2m5++9FJxj9CXqlS29PtIeiJRl0ia2cryAyX1ak9TAACk4sYbo3ru3HB95ItUQv/TxEPOuU8lNRj/yMweNLOeSU8NlPRKxjoEAKAZAwZIHRJJduyxYXvJB6mEfp2kWjO7x8zWS+puZmvNbL2ZHS1pkqTXzOyAxPIjJc3PUr8AADSQPAY/u/hbls6JfLdJOlnSRklflvRy4v3rJF0t6a9mdqmkT5xzr2e6UQAAmvLtb0f1qlXh+sgHJSksc4Qk55x7TZLMbKtz7mkzq1+1zjl3X2J+tqRbs9QrAADbKC31w/Ju2CD168fWfkta3NI3s0flgzwVByWmndvVEQAAaTr//KheuDBcH7mutd37d0iqlCQzG2Nm50jqZGZTJA1OLFNiZvdKGi/pi5JOMzPLUr8AAGwj+Sz+ESPC9ZHrWgx959z/SVogyeTD/2L5LflvS+omabOk7onXD3TOPS1puaTDs9cyAAANdeokzZoVzXP5XtNSPZHPOedukDRa0ibn3Ejn3J7yZ+lvcs6d55yrSSz7lKQxmW8VAIDmjR8f1XffHa6PXJbuMLxdJCUPs2uSGt/U8DVJ+7enKQAA2uI73/HT2amejVZkUg39zmZ2kaRzJV1sZueb2WRJX5B0k5l1T1p2saTfZrhPAABaNXlyVG/ZEq6PXJXKJXu1khZKOkNS/YUQJZLKEo8BkkrN7N+S5kr6pXNuVlMfBABANo0eHdWPPipNnBiul1zUaug75zaold31ZraTpCMlTZT0opkd7pz7R2ZaBAAgdQMGSCtWSJMmEfqNpX1rXTMrN7O+yc855951zt3nnDtW0kgCHwAQype/HNWM0NdQKrfW7Wpm3zavi6SvSprS3PL1I/cBABDCXXdF9SwONjeQ6pb+/0jaW9Jd8tfmbzGzajN7z8z+0+ixyMyuzVbDAAC0xEwak7hw/LvfDdtLrmk19J1zn0j6TD7sN8vfWvczSb3lT+7rKumcpOlrkr5jZh2z1DMAAC264go/3bAhbB+5prWx948zs7Hyo/BVSOovadf61xMj8H2SmG5OTG+RdJL8LXkBAIjdscdG9SmnhOsj17R29v79kj6RVC7pJknbyW/lf6+5Nzjn5mWsOwAA2qC0VOrZU1q3joF6krU29n5f59xgSe/Jj73/a0k/bG7xzLYGAEDbLV4c1S+8EK6PXNLqdfqJY/Ml8j8QOskPvdvBv2Tfl9S70VSS5Jyblp2WAQBo3fbbR/VBB0mOTdOUzt7vknhslPRCou4kP+Z+f/lDAL3l9wL0TTy3UzaaBQAgHdOnRzXD8krmUvjpY2bjJT3pnFuVqP/jnKs2s/MkDXPOXZntRptTUVHhqqqqQn09ACDHmflpZaX05JNBW8kYM6t2zlWk+75Ur9OfJOltM5soaaakN8zsPkmXS/p7ul8KAEBc6q/Zf+opaevWoK0E1+IxfTObIH9t/q/kr78fkXjpvyR9LH9SX5mZnZT0to7yl/j91jlXm/GOAQBIwxNPSGVlvl60SNprr7D9hNTaiXzXSvpU/sx8J38Sn0l6JPH6YkkbEs8lf2ZnSX9KvAYAQDDdukX1yJHFvbXf2iV7I5xzoyQdLmm+pO/Kh/9pkuZI6iXpN5IqnHOjE499nHPDE3fnAwAguCOO8NPaWmnhwrC9hJTqMf1Z8mflvyG/Vf+4c+5EScdLmiDpH2ZmLbwfAIBgkk/gO+aYcH2Elmron+2cO805956kXZxzmyTJOVcl6WBJl7hULgMAACAAM+mHiaHlli3zj2KUUug75z5Mqpc2em0rQ+8CAHLdZZdF9YgRzS9XyFLd0gcAIK916iR9/eu+3rhRWrEibD8hEPoAgKLxs59F9cCB4foIhdAHABSNkhLpvPOi+fnzw/USAqEPACgq994b1TfeGK6PEAh9AEDROessP/3DH8L2ETdCHwBQdK6+Oqrfey9cH3Ej9AEARWfYMKm83NeDB4ftJU6EPgCgKF18cVSvWhWujzgR+gCAonTllVH985+H6yNOhD4AoGidfLKfJh/jL2SEPgCgaP3oR1H9yCPNL1coYg99M5thZvPN7KpWlutvZi/F1RcAoPjstVdUn3ZauD7iEmvom9k4SR2dc2MkDTWz3VpY/GZJXePpDABQrP70p6heuDBcH3GIe0u/UtKsRD1X0qFNLWRmR0raKKkIb4cAAIjTCSdEdaHffS/u0C+TtDxRr5HUv/ECZtZJ0tWSLm/uQ8xsqplVmVnVypUrs9IoAKB4HHVU6A7iEXfob1C0y757M99/uaS7nHMfN/chzrnpzrkK51xFef3oCgAAtNGjj0Z1bW24PrIt7tCvVrRLf6SkJU0sc5SkC83sKUmjzOzeJpYBACBjevSI6kI+rl8S8/fNlvSsme0g6ThJE83sOufc52fyO+cOr6/N7Cnn3Pkx9wgAKEI9ekjr10t77y1t2iR1LcBTyWPd0nfO1cifzPe8pLHOuQXJgd/E8pUxtQYAKHLTpkX17Nnh+sim2K/Td86tdc7Ncs5xZj4AIGdcfLG0++6+LtQR+hiRDwCAhFNP9dPFi6VPPw3bSzYQ+gAAJCTfhKdLl3B9ZAuhDwBAQlmZtMce0Xyh3XKX0AcAIMkbb0T1LbeE6yMbCH0AAJKYSbvs4uv77w/bS6YR+gAANHLxxX66fHnLy+UbQh8AgEa+9KWofvLJcH1kGqEPAEAjQ4dKnTv7un6rvxAQ+gAANOGyy/z0lVfC9pFJhD4AAE244IKoPuWUcH1kEqEPAEATBg2SRo/29ezZknNh+8kEQh8AgGY8/3xU9+wZro9MIfQBAGhGp07SsGG+Xr/e33I3nxH6AAC0YNGiqC4rC9dHJhD6AAC0oGNHacKEhvP5itAHAKAVDz4Y1XV1fld/PiL0AQBoRceODc/eHz8+XC/tQegDAJCiE0/008cfD9tHWxH6AACk6N57ozr5Frz5gtAHACBF/fpF9QknhOujrQh9AADSMG2any5ZErSNNiH0AQBIwyWXRPWHH4broy0IfQAA0pA8QM+vfx2uj7Yg9AEASNPw4X46d27YPtJF6AMAkKaJE/30iSfC9pEuQh8AgDTVX6+fbwh9AADSNGpUVM+cGa6PdBH6AACkqaREGjrU15MmNRyiN5cR+gAAtEHyFv4994TrIx2EPgAAbXDAAdIee/j6kUfC9pIqQh8AgDaaNMlP8+XSPUIfAIA2OuOMqL7jjnB9pIrQBwCgjYYNi+pvfjNcH6ki9AEAaIennorqmppgbaSE0AcAoB2OOMJfwidJ06eH7aU1hD4AAO1UUeGnl14ato/WEPoAALTTTTdF9VtvheujNYQ+AADtdNhhUf3gg+H6aA2hDwBABuy9t5+++WbYPlpC6AMAkAFnneWns2aF7aMlhD4AABlw3HFRvWxZuD5aQugDAJABe+0V1Y8+Gq6PlhD6AABkyAEH+OnFF4ftozmEPgAAGXLuuVH93nvh+mgOoQ8AQIZccEFU3357uD6aQ+gDAJAhZtGNd266SXIubD+NEfoAAGTQaadF9cCB4fpoCqEPAEAGHX64NGmSrz/8MLfG4yf0AQDIsIceknbe2dc33xy2l2SEPgAAWfDEE1H917+G6yMZoQ8AQBbsumtUJ4/WFxKhDwBAljz0UFT/61/h+qhH6AMAkCWTJkl9+/p67NiwvUiEPgAAWXXjjX66caNUWxu2F0IfAIAsOuecqD7//HB9SIQ+AABZZSZVVPj6vvvCjtJH6AMAkGUzZ0Z18i144xZ76JvZDDObb2ZXNfN6TzP7i5nNNbPfm1mnuHsEACCThg2L6jffDNdHrKFvZuMkdXTOjZE01Mx2a2KxMyTd6pw7RtIKScfG2SMAANmwbFlUL1kSpoeSmL+vUtKsRD1X0qGS3kpewMU/pBQAAAk/SURBVDl3V9JsuaSPYukMAIAs2nFHqVs3adMmaZddwhzbj3v3fpmk5Yl6jaT+zS1oZmMk9XbOPd/Ea1PNrMrMqlauXJmdTgEAyLC7747q5IF74hJ36G+Q1DVRd2/u+82sj6TbJZ3b1OvOuenOuQrnXEV5eXlWGgUAINOmTJEGDfL1GWfEv7Ufd+hXy+/Sl6SRkpY0XiBx4t5vJV3hnFsaX2sAAGTfvHlRfcst8X533KE/W9KZZnarpNMlvW5m1zVa5jxJ+0n6npk9ZWYTYu4RAICs2WknqU8fX196abzfHWvoO+dq5E/me17SWOfcAufcVY2Wuds519s5V5l4PBxnjwAAZNttt4X53tiv03fOrXXOzXLOrYj7uwEAyAXjxkX1rFnNL5dpjMgHAEDMunWTOnf29YQYD2IT+gAABDB3blQ/9lg830noAwAQwOGHR/VJJ0nr12f/Owl9AAAC+ec/o3q77bL/fYQ+AACBHHig9POfR/Nz5mT3+wh9AAACuuCCqD7hBGnRoux9F6EPAEBgzzwT1fvtl73vIfQBAAjssMOkO+/09aZN2fseQh8AgBwwZUpUb92ane8g9AEAyAHdu0f1ffdl5zsIfQAAcsS++/rpV7+anc8n9AEAyBHJN+J58cXMfz6hDwBAjqisjOpp0zL/+YQ+AAA55NRT/XThwsx/NqEPAEAOOe00P83GID2EPgAAOeS446L6z3/O7GcT+gAA5JCePaP6S1/K7GcT+gAA5JjZs6N69erMfS6hDwBAjjn55KgePjxzn0voAwCQg777XT9ds0bavDkzn0noAwCQg264IaqHDcvMZxL6AADkIDNp8mRfv/9+Zj6T0AcAIEf95CdR/be/tf/zCH0AAHLUDjtIpaW+/tOf2v95hD4AADns+uv99Gc/k1aubN9nEfoAAOSwCROiul+/9n0WoQ8AQA4bPFi6//5ovj1D8xL6AADkuK98JarbMzQvoQ8AQB6YP7/9n0HoAwCQBw4+WLrkkvZ9BqEPAECeuOUWaenStr+f0AcAII/stFPb30voAwBQJAh9AACKBKEPAECRIPQBACgShD4AAEWC0AcAoEgQ+gAAFAlCHwCAIkHoAwBQJAh9AACKBKEPAECRIPQBACgShD4AAEWC0AcAoEgQ+gAAFAlCHwCAIkHoAwBQJAh9AACKBKEPAECRIPQBACgShD4AAEWC0AcAoEgQ+gAAFAlCHwCAIhF76JvZDDObb2ZXtWcZAACQnlhD38zGSeronBsjaaiZ7daWZQAAQPri3tKvlDQrUc+VdGgblwEAAGkqifn7yiQtT9RrJO3XlmXMbKqkqYnZT83stQz3iW31lbQqdBMFjnWcfazj7GMdx2P3trwp7tDfIKlrou6upvc0tLqMc266pOmSZGZVzrmKzLeKZKzn7GMdZx/rOPtYx/Ews6q2vC/u3fvVinbXj5S0pI3LAACANMW9pT9b0rNmtoOk4yRNNLPrnHNXtbDMwTH3CABAQYp1S985VyN/ot7zksY65xY0CvymllnXysdOz0Kr2BbrOftYx9nHOs4+1nE82rSezTmX6UYAAEAOYkQ+AACKRN6EPiP5ZV9r68/MeprZX8xsrpn93sw6xd1jIUj179TM+pvZS3H1VUjSWMd3mdmJcfVVSFL496K3mc0xsyoz+0Xc/RWKxL8Dz7ayTMrZlxehz0h+2Zfi+jtD0q3OuWMkrZB0bJw9FoI0/05vVnT5KlKU6jo2s8MkDXDOPRZrgwUgxXV8pqQHE5fv9TAzLuNLk5n1lvQr+fFrmlsmrezLi9AXI/nFoVKtrD/n3F3Oub8lZsslfRRPawWlUin8nZrZkZI2yv+4Qnoq1co6NrNSSfdIWmJmJ8fXWsGoVOt/x6sl7W1mvSQNlrQsntYKSq2kCZJqWlimUmlkX76EfuNR+vq3cRk0L+X1Z2ZjJPV2zj0fR2MFptX1nDhscrWky2Psq5Ck8rc8RdIbkm6SdKCZfTOm3gpFKuv4OUk7S/qWpDcTyyENzrmaFK5gSyv78iX0MzKSH1qU0vozsz6Sbpd0bkx9FZpU1vPlku5yzn0cW1eFJZV1PFrSdOfcCkkPSBobU2+FIpV1fI2krznnpklaKOmcmHorNmllX74EIyP5ZV+r6y+xBfpbSVc455bG11pBSeXv9ChJF5rZU5JGmdm98bRWMFJZx29LGpqoKyTx95yeVNZxb0n7mFlHSQdJ4vrw7Egr+/LiOn0z207Ss5L+rsRIfpLGJw/s08QyB6ewWwQJKa7jr0u6XtKCxFN3O+cejrvXfJbKem60/FPOucr4Osx/Kf4t95D0S/ldoaWSTnPOLW/i49CEFNfxgZL+n/wu/vmSTnHObQjQbt6r/3fAzPaUNLk92ZcXoS99fhbj0ZKeSeySa9MyaB7rLx6s5+xjHWcf6zh3pPP/Im9CHwAAtE++HNMHAADtROgDAFAkCH0AMrOyxFnWAAoYoQ9A8tf6bjUzl8Ljl/VvMrPDU3xP8mNwwP9OoKiVhG4AQE7YSdKnkrYk5t+WdKukuxot95SkD5LmP0tMe6f4HQuS3gMgZoQ+ADnnPh8X3cwOkLS9pMcajwpoZgMlvZv01NbE+1sdPTAxBvvn7wEQP3bvA2js+5Kec869mvykmXWRv9HS4qSnP2u0zKomduf/q9HnE/pAIIQ+AEmfn8z3a0lHSvpG0vN9Enf9+4H8UKqvtPAxmySNdc6Zc84k/Y+kT7LYNoA0sHsfKHJmtqOk0+UDuk7SfzXayq+V9Lj8yX4/cs61dEvluhSfAxAAoQ8UMTPrLH8P7g7yt5m91znXYMvcObfOzAY451an8pEpPgcgAHbvA0XMOfep/A069pB0sqRNTV1mJyn5WP3kFj6yi6Qnk97308RzAHIAW/pAkXPO1STKTZIekfSdFhZ/RdLmFl4frm237DlxD8gRhD6AenWSNjjnljS3gJnVqYVj9NzOGsht7N4H0B5t2XBguF8gELb0ASQ7y8zOamWZ5H83SiUpcfw+VaVpdwUgI9jSB1DPSXpAfkjd5h41anhiXomkdfXX5bf0kLRL0nsABGDOpfMDHQAiZlYiqSyVY/lm1kHSdvI/EviHBwiA0AcAoEiwex8AgCJB6AMAUCQIfQAAigShDwBAkSD0AQAoEoQ+AABF4v8DKA51RZAkFdwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "def plot_precision_vs_recall(precisions, recalls):\n",
    "    plt.plot(recalls, precisions, \"b-\", linewidth=2)\n",
    "    plt.xlabel(\"召回\", fontsize=16)\n",
    "    plt.ylabel(\"精度\", fontsize=16)\n",
    "    plt.axis([0, 1, 0, 1])\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "plot_precision_vs_recall(precisions, recalls)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 通过选择阀值来实现最佳的精度/召回率权衡"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 目标设定为90%的精度，阀值大概在100000左右 , 设置了阀值为100000\n",
    "y_train_pred_90 = (y_scores > 100000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9607390300230947"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "precision_score(y_train_5, y_train_pred_90)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.460431654676259"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recall_score(y_train_5, y_train_pred_90)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结\n",
    "* 获得了一个90%精度的分类器，但如果召回太低，精度再高，也不怎么有用\n",
    "* 如果工作中，需要99%的精度，你应该回应，召回率是多少？"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## ROC 曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 本质是 真正类率tpr和假正类率fpr（错误的分为正类的负类实例比例）\n",
    "# 与召回/精度曲线非常相似"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_curve\n",
    "\n",
    "fpr, tpr, thresholds = roc_curve(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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TQAiIlzxP5WIiDhITVKDWGuZOXMmnTt3Ztu2bbz55psMGTLE6VgiIuISrih945Kz+lOnTuWaa66ha9euZGVlcckllzgdSUREXMQVC/lqO2stxhiGDx9OdHQ0f/7zn/F4PE7HEhERl3HHSL+WDvT9fj+PPPIIgwcPxlpLy5Yt+ctf/qLCFxGRauGK0q+Ndu3axcUXX8ztt9+O3++nuLjY6UgiIuJyrij92jbQX7RoEenp6SxdupRnn32Wf/3rX8TFxTkdS0REXE7n9EOssLCQ0aNHU69ePRYvXsxZZ53ldCQREQkTrij92nBOf8uWLTRp0oT4+HjeffddWrVqRXx8vNOxREQkjLhier+me/XVVznrrLN46KGHADj77LNV+CIiEnKuKP2aep1+QUEBY8eOZejQobRv356rrrrK6UgiIhLGXFH6NdGXX35JRkYGM2fO5M4772Tp0qWcdtppTscSEZEw5opz+jVxoF9UVERhYSGLFy+mT58+TscRERHRSL8q7d27l5kzZwLQpUsX1q9fr8IXEZEawxWlXxMG+v/73//o2LEjN9xwA5s2bQIgOjra2VAiIiKHcUXpO8nr9TJ58mQuvPBC4uLi+Oyzz3TuXkREaiRXnNM3Dl2ob63l17/+Ne+88w4jR47kqaeeIikpyZEsIiIiFXFF6TvFGMNVV13FsGHDGDlypNNxREREjskVpR/KcX5xcTETJkygU6dOjBkzhhEjRoTw3UVERE6czukfh7Vr19K1a1eefPJJvv/+e6fjiIiIHBd3jPSreahvreXFF1/k5ptvJj4+nrfeeouLL764et9URESkimmkXwmZmZlcc801dO3alaysLBW+iIjUShrpH0N2djZpaWmce+65LFy4kIsuugiPx1M9byYiIlLNNNIvh9/v5+GHH+a0005j5cqVAAwYMECFLyIitZo7RvpVuH5/165djBo1ikWLFnH55ZfTunXrKnttERERJ2mkf5hFixaRnp7O//73P5599llee+01UlNTnY4lIiJSJdwx0q+igf5nn31G/fr1WbJkCe3bt6+aFxUREakhwn6kv2HDBj755BMAJk6cyMqVK1X4IiLiSmFd+nPnzqVjx46MHTsWn8+Hx+MhLi7O6VgiIiLVIixLv6CggKuvvpqrrrqKs88+m4ULF2plvoiIuJ5LzulX/qR+dnY2F1xwAd999x0T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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "def plot_roc_curve(fpr, tpr, label=None):\n",
    "    plt.plot(fpr, tpr, linewidth=2, label=label)\n",
    "    plt.plot([0, 1], [0, 1], 'k--')\n",
    "    plt.axis([0, 1, 0, 1])\n",
    "    plt.xlabel('假正类率', fontsize=16)\n",
    "    plt.ylabel('真正类率', fontsize=16)\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "plot_roc_curve(fpr, tpr)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9530160429537888"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算曲线下面积AUC，虚线是随机分类0.5到1\n",
    "from sklearn.metrics import roc_auc_score\n",
    "\n",
    "roc_auc_score(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 召回率TPR越高，分类器的假正类FPR就越多\n",
    "* 虚线表示纯随机分类器的ROC曲线，好的分类器应该远离这条线，向左上角\n",
    "* 是使用精度/召回率 PR曲线，还是使用ROC，关键在于 正类非常少或者更关注假正类而不是假负类，选择PR，反之ROC\n",
    "* 例如：前面例子ROC曲线很不错是因为跟负类 非5 相比， 正类 数据5 数量真的很少"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练随机森林分类器，比较SGD分类器的ROC曲线和ROC AUC分数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 获取训练集中每个实例的分数\n",
    "* RandomForestClassifier 没有descision_function(),但是拥有dict_proda()方法，sklearn中分类器都有这两个中的一个\n",
    "* dict_proda返回一个矩阵，每行一个实例，每列代表一个类别的概率，比如这个图片 70%是5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\ensemble\\weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.\n",
      "  from numpy.core.umath_tests import inner1d\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "forest_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n",
    "y_probas_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3,\n",
    "                                    method=\"predict_proba\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1. , 0. ],\n",
       "       [1. , 0. ],\n",
       "       [1. , 0. ],\n",
       "       ...,\n",
       "       [0.6, 0.4],\n",
       "       [1. , 0. ],\n",
       "       [1. , 0. ]])"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_probas_forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 绘制ROC曲线，需要决策值不是概率，直接使用正类的概率作为决策值：\n",
    "y_scores_forest = y_probas_forest[:, 1] \n",
    "fpr_forest, tpr_forest, thresholds_forest = roc_curve(y_train_5,y_scores_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0. , 0. , 0. , ..., 0.4, 0. , 0. ])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_scores_forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 6))\n",
    "plt.plot(fpr, tpr, \"b:\", linewidth=2, label=\"SGD\")\n",
    "plot_roc_curve(fpr_forest, tpr_forest, \"Random Forest\")\n",
    "plt.legend(loc=\"lower right\", fontsize=16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9926236957150893"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Rand 比SGD 好很多，ROC AUC的分数也高很多\n",
    "roc_auc_score(y_train_5, y_scores_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9822795887114417"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 再看一下 精度和召回率 也很高\n",
    "y_train_pred_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3)\n",
    "precision_score(y_train_5, y_train_pred_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8282604685482383"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recall_score(y_train_5, y_train_pred_forest)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结\n",
    "* 选择合适的指标利用交叉验证来对分类器进行评估\n",
    "* 选择满足需求的精度/召回率权衡\n",
    "* 使用ROC曲线和ROC AUC分数比较多个模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多类别分类器\n",
    "* 尝试5 之外的检测\n",
    "* 多类别分类器 区分两个以上的类别\n",
    "* 随机森里和朴素贝叶斯可以直接处理多个类别\n",
    "* 支持向量机svm和线性分类器只可以处理二元分类器"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 解决方案\n",
    "1. 将数字图片分类0到9，训练10个二元分类器，每个数字一个，检测一张图片时，获取每个分类器的决策分数，哪个最高属于哪个，称为一对多OvA\n",
    "2. 为每一对数字训练一个二元分类器，区分0，1 区分0，2 区分1，2 称为一对一OvO策略，存在N个类别，需要N*（N-1）/2个分类器，最后看哪个类别获胜最多\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 优缺点\n",
    "* OvO 只需要用到部分训练集对其必须区分两个类别进行训练\n",
    "* 对于较小训练集合OvO比较有优势， 大训练集合 OvA 速度快，所以OvA更常用，比如svm 在数据规模扩大时表现糟糕\n",
    "* sklearn 检查到使用二元分类算法进行多类别分类任务，会自动运行OvA，SVM分类器除外"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sgd_clf.fit(X_train, y_train)\n",
    "sgd_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-252540.00942999, -516791.40192119, -393403.63953336,\n",
       "         -98394.03651782, -429188.45386713,   79020.74962365,\n",
       "        -582414.31420303, -300670.6226875 , -606102.23349528,\n",
       "        -553179.79112348]])"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 内部实际上训练了10个二元分类器，获得图片的决策分数，然后选择了分数最高的类别\n",
    "# 返回10个分数，每个类别1个\n",
    "some_digit_scores = sgd_clf.decision_function([some_digit])\n",
    "some_digit_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(some_digit_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 目标类别列表会存储在classes_这个属性中，按值大小排列，\n",
    "sgd_clf.classes_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.0"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sgd_clf.classes_[np.argmax(some_digit_scores)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用OvO策略，一对一或者一对多\n",
    "from sklearn.multiclass import OneVsOneClassifier\n",
    "ovo_clf = OneVsOneClassifier(SGDClassifier(max_iter=5, tol=-np.infty, random_state=42))\n",
    "ovo_clf.fit(X_train, y_train)\n",
    "ovo_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "45"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(ovo_clf.estimators_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用随机森林\n",
    "forest_clf.fit(X_train, y_train)\n",
    "forest_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0. , 0. , 0. , 0.1, 0. , 0.9, 0. , 0. , 0. , 0. ]])"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 随机森林直接将实例分为多个类别，调用predict_proba()可以获得分类器将每个实例分类为每个类别的概率列表\n",
    "forest_clf.predict_proba([some_digit])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 评估分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.8479804 , 0.85569278, 0.87923188])"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用交叉验证评估SGD的准确率\n",
    "cross_val_score(sgd_clf, X_train, y_train, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.90931814, 0.90924546, 0.91243687])"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将输入进行简单缩放 ，可以得到准确率 90 %以上\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "scaler = StandardScaler()\n",
    "X_train_scaled = scaler.fit_transform(X_train.astype(np.float64))\n",
    "cross_val_score(sgd_clf, X_train_scaled, y_train, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 错误分析"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 项目流程\n",
    "1. 探索数据准备的选项\n",
    "2. 尝试多个模型\n",
    "3. 选择最佳模型并用GridSearchCV对参数进行微调\n",
    "4. 尽可能自动化\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 确定了一个相对合适的模型，进一步优化，分析其错误类型\n",
    "* 查看混淆矩阵\n",
    "* 使用cross_val_predict()进行预测\n",
    "* 调用confusion_matrix()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "c:\\users\\baohuhe\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\sklearn\\linear_model\\stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[5725,    2,   22,   10,   12,   54,   43,   10,   39,    6],\n",
       "       [   1, 6472,   47,   24,    6,   40,   11,   15,  114,   12],\n",
       "       [  50,   33, 5333,  101,   79,   27,   91,   56,  173,   15],\n",
       "       [  48,   40,  133, 5332,    3,  244,   36,   58,  138,   99],\n",
       "       [  20,   30,   35,    9, 5371,    7,   48,   31,   79,  212],\n",
       "       [  71,   36,   35,  179,   71, 4634,  105,   28,  167,   95],\n",
       "       [  39,   22,   44,    2,   42,   96, 5622,    5,   45,    1],\n",
       "       [  24,   18,   77,   31,   57,   14,    4, 5818,   16,  206],\n",
       "       [  54,  154,   66,  147,   16,  155,   56,   28, 5041,  134],\n",
       "       [  42,   37,   31,   88,  148,   33,    3,  214,   81, 5272]],\n",
       "      dtype=int64)"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_pred = cross_val_predict(sgd_clf, X_train_scaled, y_train, cv=3)\n",
    "conf_mx = confusion_matrix(y_train, y_train_pred)\n",
    "conf_mx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用matplotlib的matshow 函数来查看混淆矩阵的图像表示\n",
    "plt.matshow(conf_mx, cmap = plt.cm.gray)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 看起来不错，大多数图片都在主对角线上，说明它们被正确分类\n",
    "# 数字5 看起来比较暗，说明1. 数字5图片较少  2. 分类器在数字5上执行效果不如其他数字上好\n",
    "# 假设把焦点放在错误上，为取得错误率，而不是错误绝对值，需要将混淆矩阵中每个值除以相应类别中的图片数量\n",
    "\n",
    "row_sums = conf_mx.sum(axis=1, keepdims=True)\n",
    "norm_conf_mx = conf_mx / row_sums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 用0填充对角线 只保留错误，重新绘制\n",
    "np.fill_diagonal(norm_conf_mx, 0)\n",
    "plt.matshow(norm_conf_mx, cmap=plt.cm.gray)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 每行代表实际类别，每列代表预测类别\n",
    "# 8，9列比较亮，说明许多图片被错误的分类为数字8，9\n",
    "# 类别8，9行也偏亮，说明数字8和9经常会跟其他数字混淆\n",
    "# 有些很暗，比如行1，大多数数字1都被正确的分类，一些和8混淆\n",
    "# 5和3是错误最多的"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 结论\n",
    "* 改进数字8和9的分类\n",
    "* 修正数字3和5的混淆"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 如何优化分类器\n",
    "* 尝试多收集这些数字的训练集\n",
    "* 开发一些新特征来改进分类器\n",
    "* 优化分类器算法\n",
    "* 使用pillow或opencv对图片预处理，让显示模型更突出\n",
    "* 分析单个错误"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAccAAAHBCAYAAAAcpXCvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOy9d3DU57X//9pdabWSVr3XVW+ogxBdVGNwN44hcUmznTiZJDeeOJmb+p2bdpN7fe1xnDhxieO4A7ExGINtMEUWEhIIoYJ6r6y0RVqttu/+/tDv8wkSYAPaxXayrxlmkLS7n7Of8pznOc857yNxuVx48eLFixcvXv6J9NM2wIsXL168ePms4XWOXrx48eLFyzy8ztGLFy9evHiZh9c5evHixYsXL/PwOkcvXrx48eJlHl7n6MWLFy9evMzD5xP+7q3z8OLlYiSftgHXiPd59uLlYi75PHtXjl68ePHixcs8vM7RixcvXrx4mYfXOXrx4sWLFy/z8DpHL168ePHiZR6flJBzVVgsFtRqNQaDgcnJSTQaDSaTiQv1WwMCAggODiYyMpKUlBT8/PyQyWTuNMOLB3A4HFgsFnp6erDb7czMzDA0NASAr68vfn5+JCUlIZFIkMvlJCUl4efnh1R6feZfTqcTp9OJ1Wqlu7sbnU7HzMwMNpuN0tJSQkNDkcvl+Pj4IJF8XvNpvHjxcr1wq3PU6XRUVlbS2dlJY2Mj9fX19Pf3z3GOKpWKrKwsli9fzr333kt0dDRKpfLf1kG6XC7xn8PhuKL3SKVSJBIJEonkujgfp9PJ9PQ0arWanTt3otPpGBwc5O233wZAqVQSFRXFXXfdhY+PD2FhYWzbto34+HgUCoXH7XO5XJhMJsxmM3q9nldeeYXTp08zMDCAwWDgySefZNGiRYSHhxMaGoqPj494Dr1cH5xOJ4B437rrMy8cW1wul3ic+QjH9fFx65B3TQg2X/jsX/gzfHr2Xnj+LrRPsEsqlXrEpvnX8sLjX26M8/T4J/mErhxXnPqt0+k4efIkP/vZz+ju7sZkMmG323E4HHO+tI+PDz4+Pvj6+qJQKLjtttvYunUrW7duRS6Xu33AstlsWK1WZmZm5vzez89P/PdpcurUKbq7u2ltbeUvf/nLZR9ugYCAAEpKSsjPz6esrIxbbrnFo/a5XC4OHDjAW2+9xdtvv43ZbMbpdOJwODCbzcDsTSqTyURHKJfLyczM5Ne//jUlJSWEh4d7zD6dTseZM2d47rnnaGtrY3BwcM6953Q6CQ4OFu+7W265hby8PHJzc9m8efO1Hvbz6lU/lVIOl8vFM888Q3BwMBkZGSxZssQtz/lbb71FV1eX+POZM2c4fPjwJV8bERFBQUEBzz77LMHBwQs+9rWi1+sZGRlhfHycsbExzp8/T2dnJxqNhtHRUVpbWwFITU2lpKSEp5566rpMgB0OBzMzMxw7dgy9Xo/VaqW/v5/Ozk4GBwfp6OggNDSUtWvX8vOf/5y4uDi32OVwONDr9bzxxhvo9XosFov4t87OTtrb26moqEChUODr6yv+LTw8HJVKxY033ojL5cJqteJ0OgkKCroW533Jm3HBUwCXy4XZbGb//v0cP36cvr4+XC4X6enpJCcn09LSwtTUFDabTXyPEKIzGo1UVVVhMBiw2WxUVFQQExNzzbY4nU50Oh0ajYaBgQEmJyeZnJwUVzoXEhERQUREBLGxsahUKlJSUoiIiLjmY18No6OjDA0N0dDQQHV1NePj46jVasbGxj7xvb6+vjidToaGhujt7WV8fJwvfelLHl2hCeFKg8GA1WpFLpcTFBREcXExYWFh6HQ6hoaG0Ov14mSks7OTw4cP43K52Lhxo9tt6e3tpbu7m97eXk6fPk1dXR3j4+NMTk5e9B69Xg/MOvELIxuRkZFkZ2ejVCrdZt+/A+fOnaO/v5/h4WGGh4dJTk5m3bp1JCcno9frMRqNJCUl8e6779LV1cXo6Ci1tbX4+/uTnJxMSUnJglYfMzMzvP766xw6dGjOcz08PIxarb7kewwGA2azmb/97W+sXbuWwsLCaz7+leByuZiamhKfm4GBATo7OxkbG2NkZGTOfepyueZM4IRz5slVo9VqZXp6mrq6OkZGRtDpdExNTdHS0oJUKiUsLIygoCBCQ0NRKBQUFBRw5MgRdDodVqv1olXetWI0GhkdHeXo0aPi71wuFxKJhImJCWw2Gw0NDVitVux2u/iagIAAwsLCGB8fx2QyYTQasdlsFBcXo1KpSEtLQ6lULmgS5hbnODMzw4cffsihQ4fQaDQkJiZSWFjImjVrkMvlqNXqOSs3i8WCwWBAo9HQ2dnJ0NAQEomElJQUgoOD8ff3v2o7HA4HOp2OtrY2enp6OH36NGNjY6LTaW9vBxBPVlxcHAkJCaSmplJWVsa6desICAi4pmNfKU6nE4PBQGdnJ3V1dezatYszZ85gtVqv+DNsNhsDAwMMDAzQ3d1Nf38/GzZsIDY21iOrYIlEQmhoKHFxcaSmpqLVasWfV61aRUJCAiMjI9TX1zM8PIxOpxMnJHV1dURFRbnVOZpMJiYmJjhx4gQfffQRbW1ttLS0MD09/YkPrMvloq2tjfb2dtra2sjPzycqKoqAgIDrtjf6ecdisXD69GkqKytpamqiqamJ8vJyEhISkMvl9PX1MTExgcvlYs+ePVRWVtLW1ia+Pzo6mieeeGJBxx8bG+Ovf/0rLS0t4sRHqVTicrlQKBTI5fI575mensZkMtHb28tLL71EeHi4x5yjxWIRB+uRkRGmp6eZmJigvr6e2tpaNBoNk5OTWCwWYmJiiImJQaVSkZOTg0wmQ6/Xi1sYRqPRbXY5nU5sNhszMzOifePj4+zfv5/29nbGx8dFhxkeHk5mZiYpKSkkJCSgUChITEykvb0dhULh1mfFarWi1+sZGhoiPDx8zrULDQ0lJCSE8+fPMz4+zvT0tDh+2+128ftoNBomJiawWq3ccMMNlJaWIpVKycnJmbPavFrc4hxNJhN6vR6DwQBAfHw8K1as4Bvf+AYPPfTQRe/p7u7m2LFjPPbYY4yOjjI1NcXOnTuJi4tDq9WyefPmq/b4Wq2Wxx57jDfeeIPh4WFxoLxcmHJ0dJTR0VHq6+t5++23uffee7npppu4/fbbr/IMXDl6vZ6nnnqKhoYGuru7aWxsXNDnabVaqqur+eMf/8itt97KqlWr3GTpXFatWsWSJUt45JFHOHToEMuXL0elUs25RsL5fvfddzl48CB/+tOfPGLLyZMn2b9/P08++eRFIfsrxeVyMTExwe9//3syMzMJCgoiLCzMA9b+a2G326mtreWVV17hvffeE3+v0WioqqriscceE0PbEonkE7cIroXq6mr27dvHiRMn5lz7++67D4vFQl9fH8uXL58zgD/33HOMjo4Cs9sYIyMjbrfL5XJht9s5ceIEBw8e5L333mNkZASz2YxUKiUiIkIcuMvKyoDZiUJYWBh+fn7Y7Xaam5vZvXs3IyMj3HTTTdx9991uc0Tj4+OcO3eOt956iwMHDmA0GpFKpcjlcvLy8li7di1r166ltLSUsLAw/P39kUgktLe3U1dXx3e+8x1uuOEG1q5di0qlcotNAJGRkSxfvpxdu3YRHh5+0QTf6XSiVqsZHx+fM1no6Ojg+PHjaDQaNBoN/f39ALz00kvs27ePnJwc3nzzTaKioq7ZtgU7R5lMRmRkJD/4wQ+49dZbaWhoYPny5SxatOiym+8JCQls2rSJsbEx9u/fz8mTJ8WZpslkEmPMV+MgHQ4HWq0WpVKJUqm8KLwml8vJzc0lNDSUyclJ2trasFgsYpiuvr4epVLpMec4OjpKU1MTL7/8MlNTUxftgV6OsLAw4uPjOXfu3CUdgd1uZ9euXaSlpXnMOcLsHm1YWBjr1q0jLCzsoodWuFaxsbGkpKR4xAaTyURDQwMffPDBnBCLQHBwMBERESQnJ5OWlkZ8fDyxsbHA7ITs+PHjNDY2Yrfbsdvt6PV6Ojo6SExM9DrHj6G9vZ3GxkZqamqorq6ms7Nzzt97enp49dVXxVXPhQkc7mb+Z+fn5/O73/2O5ORkcaIeGho6Z+xobm7m1KlTF22tuAuDwUBvby+HDx9m79696HQ6HA4HGzZsICsri8TERDIzM4mMjCQkJITQ0FAA0RGo1WpefPFFGhoa6Orq4rvf/S5Lly5l0aJFbrNRCOsODQ1x5513kpGRQVpaGjKZDKVSSWBgIBEREYSEhCCTybBarbzzzjscPnyYtrY2Vq5cyZ133kleXp7bbBIQfIivr+9F44owsQgKCpqTsKhSqSguLqampgaDwUBfXx+AuO9YWlq6oFUjuClbVaFQsHjxYlQqFbGxsSxatOhjB5uAgACSkpIoLi7m9OnT+Pj4YLfb6evro6+v75pmnHK5nIyMDAAmJibQ6XRz/u7r60tRUREhISFMTU0RFBTEwMAAw8PD2O12NBqNR2aUAuPj43R1dV00sMDs+VMqlSQmJop7DwKRkZHEx8cTHx+PWq1mYmKC4eHhOe/v6+u76Pu6G4lEgq+vL3FxcZd9jdFoZGpqSowg+Pj4uDUL2eFwYLVasdlsJCUlMTk5idPpRKlUzgn9pqamkpWVJZ43mB3gpVIpnZ2dGI1GnE4nFotlTsTDy1zsdjsGg4Hjx49TU1PDyZMnaWlpueh1BoNBPIcKhYLw8HCCg4MZGxsTk7ZgduKUn5+/oH0gf39/0bmkpaWxfPlytm7detHrZmZmMBgMYhRJOGZhYeGC8houxeTkJD09PRw5cgStVktkZCRpaWksXbqU3NxckpKS5qy2XC4XGo2GoaEhMRGnvb0dk8lEamoqa9euJTU11a2JbFKplKCgILKysli1ahW5ubmkp6fPeY3D4UCj0TA1NcX4+DhVVVUMDw+jUChYs2YNixYt+tjnfyF83JaQkDjpcDgwGo2ijVqtFp1Oh9lsRi6XExsbS2hoKFlZWZSXl18UXr9a3Lbj6+fnR0JCAgkJCVf0eolEgkqlIioqCn9//wUPUOHh4fzwhz/EaDRetHkrHC84OBhfX19xpbhr1y6effZZ8bWeTO0fGRmZs/dyIbGxsRQUFPAf//EfFBYWEhkZecnX7du3jwMHDvD00097zM5rxel00t/fz7Fjx3j//feB2YEsICDAbceQSqVkZmayadMmAKqqqrDZbOTn57Nq1SoKCwspKioiKCjoovcmJydTVlbGnj17sNlscwZtL5fGYDBw5swZfvGLX4hhyU9CWCWVlZXx97//XZzRA2zcuJGHH354QYkmsbGx5OXlIZPJ+PrXvz7HMV64ohwYGKChoYE///nP1NfXYzAY8PX15b/+678oLS295uNfirGxMVpbW6msrOQnP/kJ69atY/HixZd9vRB+3bdvH6dOnWJiYoKvfe1r3HPPPWzYsMGttgksWrSIvLw8tm3bdkmn4XA4mJ6e5vjx4zQ0NIiJOl/84hfZsmULJSUlHrHrShBKdKanp2lra+P999+ntraWY8eOidc1IiKCu+++m2XLlpGZmUl+fv6Cj/upFf04nU7q6uro7e1lenoagKKiIoqKihZU0iEk1cwP6wg1MTMzM/T09PD//t//o6WlhZmZGVwuF6tWreLmm29e8Pe6HCqViqVLl1JeXk5rayvh4eHcdtttfPWrXyUsLAy5XE5ISMjHzqBSU1MvmUhQUlKCw+GgoaGB4uJij32HyyGkgTc2NlJXV8e5c+dQqVTceeedLF++3G3H8ff358Ybb6SiogKYHbydTieBgYH4+/tftjTH5XLR2NjIzp07OX/+/Jx0cXfW3f0rsXfvXo4ePcrrr7/O+fPnP/a1OTk5bN68mdLSUrKzswHYsmWLOOGVSCQ88cQTrFy5UtxuuVYSExOJioqivb1dzJR+8sknAWhoaODYsWPAP0u4JicnxYmQVCpl8eLFYqjdXcTFxbF69WoUCgU7duy4aMUn1DDX1tZy6tQpjh49SnNzM4mJiZSXl3P33XeLWz6eQnguLnXue3p6aGlp4eWXX2Z0dJTU1FTuvvtu1q9fT2hoKIGBgR6zaz4Wi4WJiQkxWbOlpQWNRoPFYkGn01FTU8PMzIy42CksLGT16tUsW7aMVatWXVTysRA+FedoMplQq9UcO3aMgYEBYDYcs2TJEoqLixcUivu4wU4If+zZs4e2tjY0Go3oRIXaS08RFRVFVlaWOKtOSEigtLSUnJycK84ybWxsnJPyLKBQKAgJCflU9s3sdjuDg4M0NDTwzjvv0NvbS0BAAHfddRf5+flER0e77VgSiYTAwEDxYRW+7+UK+oX6p8HBQU6fPs2xY8ewWCxiVmNOTg55eXkkJia6zcZ/Ferq6qisrLzsijEwMJCCggIKCwvJzMykoKAAPz8/Ojs7OXfunBjmDw0NJTc3l2XLlpGamrrgkiOh3CEtLY29e/dSV1dHbW0tMLta7Onpuex7nU4nTU1NSKVSMdzuDoKDg0lJScHf31/cO4PZSePAwABjY2P09fVRW1vL2NgYRqOR4uJiiouLWbRoEfn5+YSHh3u0dGP+82E0GtHr9bS3t3Pq1CkGBgbw8/Nj1apVZGZmUlpaikql8ngWt6C21dbWxtjYGFqtdk6VwfDwMFNTU/j7++Pj40N0dDTJycmEh4cTFhZGWloaOTk5pKWlub0U77o7R6fTiVarpampiffffx+tVotMJiM8PJwVK1ZQVlbmsQsyOjrKqVOneOaZZ9BqtXPCqUIM22KxXHJjeKFERkYik8koKChgx44dJCcnX9X77XY7hw8f5o033rjk38PCwtyaRXY5BCUL4Z9er+fs2bO8+uqr7N27V3Q6Dz30EElJSR6tv7xwEjU/UcNut2OxWNBqtdTU1FBZWUlNTQ3wz/2XTZs2sXTpUlJTUz1m4+eVs2fPUl9fL/4sCD34+Pggl8uJj4/n9ttv59577yUqKgqbzUZlZSW7d+8WlZPkcjnJycnccccd5OTkuKX4/kIBij//+c8cOHDgY18vOByHw4HD4eDdd98Vw3DuKn0KCgoiKChInGQJK0W9Xk9dXR319fVUV1fT399PTEwMRUVF3HLLLRQXF5OUlCTaZ7PZcLlc+Pr6eiSa4XK5sNlsmEwmRkdH6enpYffu3VRXVwPwla98hbvuuou4uDi3bod8nD2Tk5MMDw+zb98+Tp8+LdaqajQaYPYZt9vtpKSkiFsjGzduJCEhgYiICOLj4z0W+bnuzrG3t5eqqipef/11dDodNpuNkJAQbr75ZpYtW0ZaWprHjv3BBx9w4MCBSxYKf/DBB3R2duLj48OGDRuIjo52+8AeFhbGI488ctUrYyEkc7kC5+uFMBMWkm60Wi0vv/wyTU1NdHd3Y7fbqaioYOPGjcTFxS14Q/xqEGwSQvRnz56loaGB3bt3X5QYEh8fT2lpKb/61a88Gi34PJObm0tfXx9NTU3A7DkTEh3uuOMOCgsL8fHxobGxkerqapqbm3niiSfm5A5s27aNzZs3c88997htVTQ4OEhLSwtPPfUUp06d+tjXBgYGivuL4+PjtLW18ec//5nu7m7a2tr49re/7ZGBdXJykr6+Pr773e/S0dGBRCJhzZo1/OQnPyErK4uEhARkMtmcY587d47z588zMTHB+vXrP3GL5VoYGxvjyJEj/PKXv+T8+fNYrVYsFgurV6+mrKyMNWvWEBERcd2eW7VazR/+8AdefPFFxsfHxYm3kJWanZ1Nbm4uR44cobS0lEWLFqFUKkW9bk86RriOznFmZobm5mZxMG1vbxdVc6RSKdHR0fj5+Xn0yxYVFWGxWJienkar1WIymbBarYyMjGCxWBgaGuLZZ5+lpqaGhIQEkpOTqaioICoqym0qKpcbJBwOB11dXfzjH/9gfHycNWvWiH+z2Wz8/e9/p6Gh4bKfOzExQXd390UZaO5gYmKCnp4e2tvbOXLkCHq9HpPJhMViobu7G71eL67Cz507h8ViISgoiNWrV5OQkODRcK/ZbGZsbIydO3fS09MjqgxptVoxs9dsNs9ZVQqye9fTeX/eWLlyJQEBAWRkZLBp0yaio6MJCQkhKiqK8fFx3nrrLfr6+qirq2NiYkLM+r0w01zIVnZnuFCtVtPc3MyZM2eYmpq67OuKi4spLS1l+/btopN3uVx0dnZy5swZLBYL69evR6VSuWVPTch+rqqqoqamhpqaGlpbW8nPz0elUhEfH099fT319fXis6LT6TAajZhMJnQ6nagP/Oabb5KYmChmriYlJREUFLTgzG8fHx+Cg4NZunQpAwMDjI+PYzAYGBwcRKfT0dnZSXZ2NgkJCaSkpBAbG0tycjJRUVEeG5eFSEBQUBAxMTFERUWRlpZGXl4eAwMDnD17FovFQl1dHR0dHfj6+hIYGEhcXBx5eXl8/etfF7W5nU4n/v7+bsuQ97hzNJlMTE5OMjY2xvHjxzl48CCDg4NiUoRSqSQmJobU1FSPqtMAouMwGAyMjY0xMzOD0Wjk7NmzTExMMDU1xcmTJ+nr6yMmJoa0tDQUCgW5ubmoVCqPbpgLMklvv/02/f39c+ogrVYr77333iVr+2B24tHR0cGJEyfEDFE/Pz+3nE+HwyGKyJ8+fZojR46ICh8ymUwsFg4ICGBmZoaRkREMBoNYL5WZmUliYiLJyckeCVdPTU1x5swZ3n33Xdrb269Igk+hUODn50d7ezvBwcEEBgZ+qnqbn0Xy8vIICgoiLi6OHTt2EBwcjMvl4vz581RVVVFdXc25c+dobW3FZDJd8jOECZQ7mZ6eFjVJ5yfd+fr64u/vT3R0NKtWraKiooIbbriBtrY2AgICUKvV9PX1MTY2ht1up6GhgbCwMLc4R5vNhl6v58MPP+TIkSNiCN/f31+sC25ubhY7xcDsalaQ27uQ3t5ewsPDSUhIQCKRiOHXhISEBU00hHKHVatWMTw8zNjYGJOTk6KSjyBaICjSBAUFUVRUREZGBtHR0fj7+7v1+fXx8SE+Pl5MIkxOTiYxMZH8/HyWLFkiSmuqVCrsdjuTk5NIJBI0Gg3j4+MMDQ1RVFREaGgovr6+2O12EhMTCQ0NdctY7Tbh8UshDKwHDx6kurqa48ePYzQa5xRzrl69mo0bN/KjH/3IY7H2S2GxWESN1/379/Pcc89RWVl50esiIyO56aabuOmmm9i2bZvH7NFqtWzfvp2GhgYmJiau6TOCg4P53ve+R3FxMenp6RQVFS3IJqHO7YYbbqCzs3POTF0mk4lJGTKZjKmpKZqamuZc29DQUHEv9OmnnyYxMdHtmW/V1dV885vfpK2t7Ypl+ARnXlhYyA033EB5eTlbtmy5msN+XtNbF/Q8m0wmHnvsMXbt2nVF6k5FRUVs2bKF3/72tws57ByOHDnCvn37eOKJJy5yjgkJCRQUFPDII49QUFAwJytVrVZz9uxZvvCFLzA5OYlCoaC8vJz/+Z//ERVrFoJGo6GhoYEvfelLjI+Pz7HN398flUqFn58f2dnZLF269GM/y2KxUFtby+nTpxkaGmLJkiWsXr2aH/7wh0RFRbm9g5FQKyiVSvnoo49obW2lsbGRPXv2kJuby+LFi3nggQcoKCi4ZJmUJ7HZbBw+fBiTyTRnbOno6ODo0aO0tbWJyZQWi4Vbb72VioqKqx2rPSM8/nGYzWaefvppamtr6e/vFx2joLby/e9/n9LSUrKysq6rY4TZWZTL5cLPz4+tW7eSn59PZ2cnb775JlVVVYyPj4sJHfv27ROz4m655Rays7MXJEs0n/r6ej788EPq6uoWpKdoMBh49tln+dGPfuS28KqQiOHr64tSqaSoqIiCggJSUlLIyMggKysLqVSK0Wikvb0djUbD2NgYVVVVdHV1odFo0Gq1/OUvf+Gmm25izZo1bt3nCwsLo6KigvT0dLHTQXd398cqtAhKKk1NTQwPD1NfX4/JZGLLli0ej178K5KZmcmGDRsoLCwkJSUFm83Gbbfd5pFjlZWVERUVRVVVFe3t7TgcDrKystixYweLFi0iKyuLmJiYi65jeHg4paWlomMxm82cPn36kkL118LIyAi7du3CbDYTEBBAUFAQubm5rF+/ntzcXNLS0sRozidNEJ1OJ3fccQdqtZqWlhZ2795NVVUVjz/+OI888oiY3OcugoODRZHuDRs2sHLlSoxGI/fccw/V1dU0Njbyta99jZtuuolVq1axdevW69bNyMfHhxUrVlwkDLNq1Sruuusu2tvb2b9/P1VVVUxOTvLmm29SW1tLTU0NP/3pTwkJCbn2Yy/U+I/D6XQyMjKCWq0Wb8LIyEgSEhIoKiqioqIClUpFZGTkda81u7DkIzw8nICAACIjI7FYLISFhdHX10dvby9dXV1MTEwwPT3NsWPHCA8Px2q1snz58quWuLscgYGBYmi5t7f3mh9Yl8vF2NgYY2NjblHMEbQX161bR3Z2NjabjcWLF5ORkSEKt8fExCCRSLBYLERGRopNrqOjozl+/Djt7e20t7dTXV1NamoqeXl5blXZCA8PZ+3atej1erRaLWq1moGBgYuyV6empsRw3OTkJCaTienpaXHGvH//foKDg8nOzhYzCL3MRSqVEhMTQ1ZWlvi7rKwssrOzKSsrIz09nfj4eI+qNSmVSlJSUrjzzjvp7+/H6XSiUqlYt24dSUlJl1W/8fHxEfe1TCaTeP2vtIfqJyGIc69btw6lUkl0dDSpqamiclh0dPRVTQojIiLEjMz29naampqoqqrirrvuws/Pz61bPDKZTHS2wue6XC4CAwNFeTmTySS2B1MqlVRUVFyXPXuhnvFSxMTEoFQqMRqNBAYGMjg4yIkTJ8TJcUNDAzk5OdesiOTxPUepVDonTp2WlkZFRQU7duygsLDwM9PkWLi57733XjZs2EBzczMHDhzghRdeEFV36urqgNkElYyMDOLj492SbJCdnU1iYiJDQ0Ps3LmTtrY2sbP9hQhCBoJDFnRh59Pf3z9HmeRakUqlBAQE8L3vfY+ZmRkcDgcZGRmXnBAEBATMKYnYsGEDSUlJHDhwgLa2Nk6ePElOTg4lJSXExsa6bTIUHR3NnXfeCcyGYISuCPNXjl1dXRw7dvfonisAACAASURBVEzsEjEyMoLNZsNut9Pf388rr7zC9PQ027dvJzEx8d9KGOBKGxHLZDJyc3MBxJD9Aw88MCd86XQ6GR8fv6LPu1aUSiU/+tGPrvp9EomEnJwcjEajWF9ts9lwOBwLHofi4+PZvn0769evJyEhYcFlVb6+vvj6+pKfn8+NN96IVCrlySefpLW1dY4+q6eQSCTExsaK0Z6ioiKefvppjh8/Tk9PD8XFxURERHyq3WwkEgnx8fHccccdbNq0ic7OTrEDipC/4XA4iI6Ovqb70KPOUSaTkZGRMUdPVEgJ/yw5xvnExsaKavHLly/nrbfe4sMPP2R8fJwzZ85w/vx5NBoNv//97y8r9Xa1BAYG8v3vf59vfetb6HQ6mpqaqK+vn5OYI4gFC1JOe/bs4etf//pFn9XW1nbVdZQfR0xMzJwO5VeK0HJGoL29ncOHD7NixQqPDJrCgHKpsFV4eDglJSU8/PDDdHV10dTUxDPPPENra6uYYLR3717i4uIoKSn5t6l9nJiYEGUNU1JSPlYQwcfHh2XLllFWViY61PnlTkePHuXgwYPAbDlITk6Ohyy/eqRSKUuWLGF0dFR0jm+++SYzMzPcfffdC/rswMBA0tPTSU1NdbvDyMzMFPvkXm8kEglBQUHceOON5OXl8e677/KjH/2IZ599lk2bNrllv3ah+Pn5IZfLWbJkCd/61rd4//33efbZZ/nHP/5BSEgIOTk51yT64FHnKJfLufnmmzGZTPj6+tLc3ExHRwdJSUm0traSm5v7mXSQgsi2j48PZWVl2Gw2goKC+Otf/yqKlNfU1Lg9E0+hUKBQKEQ1iLi4uDlNosPDwwkNDSU8PJzh4eHL7k9GR0e7XZnmWpzZ/PcEBga6vaxDkK6bHx7z8/MTryH8U1lFoVCQnp4udgx//vnnaWlpYWJiArPZzKlTp3jllVf4wQ9+4PHSos8CnZ2dovyaUKqxZs0a4uPjRdH7CxHO43xcLhd9fX189NFHfPDBB+JrPbmyGBsbw+l0XtXAN18MX6j1cwfzo2TuQmhYIAgwuLM0xmaziXZf7l6/sOlAeno6+fn5nDt3zq1dQxaKRCLBx8eHxYsXYzQa+eijjxgdHRVFyj9zztHHx4eVK1cyMjLCzMwMra2t9PT0EB0dTUNDA1lZWdfVOQoZqi6Xi4CAgE8c+ARx9KmpqTn7gEajka6urjmOy53I5XISExM/dhZ/oYrEfOLj469YAP5qEQp1gcteO6fTydTUFBqNRiwKF1RJkpKSFuRwhHCz1WoV942EguYLZ9ahoaEolUqxVEMYFCUSCWFhYYSGhpKYmMiJEyfE4muYrdN0OBx85zvfwdfX9zM5eXMng4OD7Nq1S/xZqVRiMBgoKiq64hm31WplamqKU6dOUVNTQ0NDgzjJ84RCktPpZGxsjI6ODmQy2VUNfEL/RIHp6WlROOKziM1mo6Wlhc7OTrHllbvOqbClINRxf9K9HhAQQFxcHEVFRXR2dqLVat1ihzsRGrIXFBQwODiIwWBgcnJyTmeWK8Xje45+fn7iJvXBgwfR6/X09fVx6NAh7rjjjutaiN3c3Mzo6CgWi4XNmzdfUWG/yWTi+PHjvPzyyx5p3uoJBGUJd+NyuZiensZgMIjx/kuh0+l49tlneeONN+jt7QX+Kby+cePGBTlHg8GARqOho6ODw4cPi2LnBoNhzuoxIyOD1NRUiouL2bJlCykpKcTFxc0RYA4MDCQhIYHo6GgxtKjT6ejt7cVisRAQEPAv7xznMz09zVNPPUVhYSEbN268oh6hbW1t7Ny5k//7v//DZDKJZRLl5eWiELk70Wq1fPnLX8bhcFBUVMTq1auv6H0ymYwHH3yQrq4uPvzwQwDefvttzGYzDz/8sNvtXCh2u53u7m4OHz7M6Ogojz76KMuXL3fLfqPdbketVnPffffxn//5n2zYsOGKyqxCQ0MpKiqisbERo9GI3W73qCbstRAZGcnq1as5dOgQer2egYEBysrKrq9zHBsbY2RkROyZdtGH+/iwZMkSgoKCWL58Oc8//zz/+7//S39/P5WVlbz66quUl5eTlZXlUQ1OgaamJiorKzl9+jR79uyhqKiIZcuWkZubOyccMjo6yujoKJ2dnezZs0csHBZ0D+Pj40WH725efPHFOQ1lb731Vr73ve+Jf9fr9ezdu5edO3desrcezCY9uVMpp7W1Vdyn2bt3L2azmYSEBB566CHy8/PFLigajYb6+npOnTrFSy+9xMjICCaTCR8fHx555BFRdWUh1NfXc/jwYfbv349OpxMl4+YLJAwNDTExMUF7ezuHDh0iPj6ezMxMbr/9dhQKBUajkffff5+qqiq3JC99XgkNDaWwsJBz587NOYc9PT2ibmlubi7FxcUsWbJE/LtWq+Wdd96hs7NT7BYvSPRFRkby2GOPER8f75G6OEEwQ6jD/fvf/87tt9/+iUIOTqeT3bt3i5J4Ap/GXt4nYTAY6O/v58c//jHT09OUlJSwdetWt9UJnzp1isrKSr785S+Tm5t7xeOv2WxmfHz8soIknwXCwsJYtmwZcrmctrY29u/fz4033njVk92rdo4ul0vsR9bf38/IyIi4uT0fX19ftFqtqGBgtVpxOp2YzWYmJyc5fPgwERERqFSq6+IchZKD7u5uMe1fr9fT29srZoICYjlEV1cXR48exWKxiLOOtLQ0sXjcEzVxPT09nDx5UpSK8/PzIzMzU/y7Xq/n4MGDnDx58iKxAIlEIhbeu8txC5Jbzc3NNDU1cfToUVwuFxkZGfT29hIYGEhAQAAOh4Pm5maqq6s5ffo03d3doiJHdnY2K1asIDk5ecErMZ1OR3d398dK6QFiur5Op6O/v5+enh4GBgZEdZyZmRkOHTrE6Ojov3Wz47i4OG688UacTidDQ0Po9XpgdgU5ODjIBx98wMDAAKOjo3O0fbVaLQcPHqS7u5uRkRGGhoaA2QjB4sWLKS0t9ZwgtI8P2dnZtLS0MDAwwMGDB4mOjiY2NpagoCDS0tIuOrbBYGBoaIgPPvhAjGYI399TWxBXi6ArOjQ0RFdXl/j9Fi9ezLJly0hOTnbbKk2tVtPR0cG9995LWFjYFT2XdrsdvV5PR0cH4eHhBAUFLfga22w28Z+QI7CQaKLT6cRut4tRPmGCbLFYUCgUnnWOQlPMhx56iNHRUTF9/nIEBQXN2ewV5JNcLhc7d+4kOzub5cuXL6hY80rJzc1Fq9VSV1fHwMAAw8PDHDp06LKZmBf+XnCe27Zt44YbbpijfepJDhw48ImdBwT8/PwoLi52uxRabW0thw8f5uTJk8Bs0bDNZqOnp4fBwUEkEgl2u53XXnuNgYEBdDodEomEqKgo1q9fz49//GOSkpLcVvwvXIurCXPr9Xr0ev0nKrsI1/pfPRFHoKCggN/85jdER0ezd+9eKisrxft+enqapqYmmpqa2L179yd+lkQi4eabb+b+++/36PkLCQnhN7/5DT/+8Y+pqqritddeo6uri4yMDPLz83nkkUcuGmB7enp44403eOWVV+bI3W3cuJH169d7zNYrReiYMT09zZ49e9i7dy+nTp1i27ZtPPzwwxQWFrp1C0rQmBYS064Eo9FId3c3Bw8e5Ktf/SoqlWrBk93p6Wl0Oh0TExNidvu1lF4Idc0zMzOMjY1RW1uLxWIRfzaZTCiVyqsag65pGuJyuZiamsJoNH5iSELY7BZWZe4qur0WiouLxU7yf/jDHzh16hQtLS2fKDsWHR1NXFwc+fn5bN68+ZINh91FR0fHZcOlH8eOHTvYsWMHy5Yt83hfR4PBQFtbG7/73e/m3MRC1mhwcDA33HAD99xzD4sWLUKlUrltxltRUSGGjd999116enrE1c5CkEgkVFRUkJGRQV5eHsHBwZ+5vRRPIZPJeOihh7jvvvtQq9X89a9/FYXFr4TIyEhycnJ48MEHWbJkCRkZGR61Vy6XU15ePuc+P3v2LM3Nzbz77rv8+c9/Jj09XczYbmpqQqfTMTMzIzpGPz8/SkpK+MpXvsKyZcs8au98XC4XExMT4pbA2NgYJ06coL29nXPnzmEymSgpKeGXv/wl99xzD8HBwW7PzUhJSaG4uJif//znfPOb32T16tWXXaA4HA40Gg2/+c1vqK2tJSQkhC996Utuuc5yuRybzcZ///d/09HRQUBAAGvXruWWW24hKSmJ6OhoAgIC0Gq1YltBmA2dCiv+jo4OsUxsdHRUTNYyGAxs3LiRbdu2ERsbe9WT86t++qVSKQqFgm9/+9sMDAwwMTExJ7zncrno7u7GYDDMcZ7znaJMJmPt2rXk5ORct07TQhq0n58ft99+O7m5ubS2tlJbWztnFSII1wr1fZGRkaKCTVpamkftzcjIIDc394q0K2F2UL/jjjvETuzXqgbxcZ+/Zs0aFAoF0dHR1NbWotfrsVgsWK1W0tPTkclkWCwW8vLySEpKIikpifLycoqLi4mKinKrkwkODkalUrF582ZiYmJQq9WXzDZUq9VotVpRrUUIr5rNZjH0LJyr4OBgEhMTWb58ObGxscTFxV13OcNPG6EnodA+LjExUawHPXXq1JyWX/BPEeuSkhLS0tLIz89n2bJlxMbGXpckOz8/P7Zv3050dDSHDh1iZGREzGAWFJCErQUhCU8gNDSU5ORkvva1r5GVleWW3oVCj8n29naxZCkwMBCbzYbRaBTDzlqtVhT9FsbIqakpdDoddrudpKQk8vLyKCgoID8/32111PNJSEhg2bJl9PT0cOzYMZqbm0lLSxOdiCCxODU1xdTUFIODgwwPD6NSqdiyZQvJycluGQflcjlhYWGsX78epVKJXq9ncHCQV155RVyUBAYGMjExgU6nEzP0he04wd8IXYOmpqaYnp7GaDSyfv161q9fz+LFi69pDLom4XEhNi7U37S1tc1ZQR4+fJiRkZGPFdD29fXlJz/5CatXryYvL++qDXcHwoV44YUX5mwwJycno1KpyM/Px+VyERISQnBw8HUR3X377bc5cuQIr732GiaTSSxduDAUJNyUgvj3888/T2FhoUfLN4R9vmeeeUbs6Qiwbt065HI5RqOR0tJSysvLycvLm6Oa4inMZjN2u/2S0Yimpib6+vrE1U9PTw8nTpxgcnISlUpFSkoK+fn5wKzoQ3l5OZmZmVda2/h59ZpXlXkyMDDAG2+8wXPPPXfR6jwwMJDi4mLuu+8+8vPz5+yLX0+am5v52c9+xpkzZ0QxB7vdjt1unzMmSaVS/P398fX1JS0tjbKyMp5++mm3TYCsVitarZadO3eKzjcyMpKZmRnUarXYe7Knp0dstyUkkslkMrKzs8nKyqKsrIxbb72VyMhIjzccNpvNYqi5t7eXvLw8MTnH4XCI3YvUajWjo6OUlJSwYsUK7r33XkJCQtx27pxOJ5OTk1RXV9Pa2kpDQwOVlZUoFAoiIyPx8fERV46Tk5M4HA6xm5MgmanT6cTFjyAE8pOf/ITFixeTnZ39Sefykl9kQV05LuwIP//LCn//OHx8fD71/R2XyzWndg8u3ne6nvZd2PDz6aefZmJiAovFwhNPPIHNZiMqKopvfOMbwGxboW3btnm82Br+ea2FOlGBC487X97u02T+vXnhz5e6vld5H376X/DauOq0TIfDcdmtkAuLxz+tay7ck06nk9raWvbv38/JkydpbW2d075s0aJFbNu2jfLycnJyctya3AKzCWBqtVoMPba2tor32oX3odDCasWKFSQmJhIbG0tubi5lZWWEhoaKQv/XC6fTSUdHB52dnRw9epQzZ86g1WoxGAxkZ2eTkpJCZmYm27ZtIzIyEoVC4bGxRlgICGUmGo2G0dFRjh49Kgp4CAIozc3NVFZWYjQaUSqVxMbGsmXLFjIyMkhOTqawsJC4uDjRx3wC7neOXjxLV1eX2Ki3vb0dp9OJQqEgLS0NQCxk93Ld+bdxjp8ntFotIyMjaDQaJicn54SCQ0JCSEpKIiIigqCgILevyoT2d+fOnRNVWS5VeC6TyZDL5URFRREQEIBCoSA4OJjw8HC3dqu5GgQhhPPnz6PT6bBYLNhsNkJCQggMDCQoKIikpCTkcvl10VJ1uVxYLBYsFovYX1IqlSKTycRMc71eL5aU+Pr6olAoiIuLIygoiMDAwKsVS/A6Ry9e3ITXOXrx8q/DJZ/nT09S3YsXL168ePmM4nWOXrx48eLFyzy8ztGLFy9evHiZh9c5evHixYsXL/PwOkcvXrx48eJlHl7n6MWLFy9evMzD6xy9ePHixYuXeXidoxcvXrx48TKPf4+2A/8/09PT9PX1sW/fPo4fPz5HGF1QshB+FuSKvvCFL1BWVkZubu6/TZeGfwWcTqeodwn/1NGtq6vj3Llz6PV6brjhBlH9/3qIZf8rIWhvtrW1iU3PhR6Bw8PDwNyWbzKZjJtvvpkvfOELJCUlfZqme1kgLpdL1IqVSqXodDqKioqIior6lC1zL24f7Z1OJ319fWL7IpiVdbqwW7uvry9BQUHExMQQHR1NWFiYR7QZHQ4HOp0OrVbLxMQEarWanp4ePvjgA2prazEajZd9ryBULPQudLlcFBQUeMROg8EgCnl3dnaKnSTmExUVRWxsrMdbAgkIja1HR0eZmppCr9czMTFxSc1ciURCeHi4KIkVGBhIXFzcdWliLSD0b9NoNGJHDqGx7dTUFMPDwzQ2NtLZ2cnk5CQA4eHhlJSUUFBQcN3s/LzhcrnEjhdjY2OYzWamp6fp7e2lo6MDtVqNWq1mYmKC4eFhNBoNUqkUs9mMw+HAbreTnJzM5OSkx3RDrVYrFosFk8mEwWBgZmYGo9HI6Oio+BqpVEpaWhpRUVGEhoZel3tT6Nah1WrR6/WYzWbx/Pn4+IjanyqVirCwMEJDQz1u07UyMzPDzMwMk5OTNDU1iZJuDQ0NDA4Oit1ZwsLCrlhmTtDG1el0tLW1odPpRL/h6+uLv7+/OO4FBwcjkUiQy+XXRcvXbc5R+JJms5l33nmHkZERccCvqamhp6dHHJCioqJIT09n06ZNbNq0ibKyMo/cqEajkaamJmpqajh27Bj9/f1oNBqxW8jHnWChceauXbvo7++nv79fXD2648IIgucAfX19NDc3I5FIePzxx6mtrRUFiy9EOF+PPvrogo9/Jdjtdqampvjwww9pbGykpaWFI0eOYLPZgLmi4zKZjKVLl5KSkkJCQgJJSUnceuutxMfHX5cVt9Bzrq+vjxMnTnD27Fna29s5ffr0Zd/z3nvvYTAY2LJli9c5XgJBMNtmszExMcHAwAAHDhxArVYzPDzM4cOHxXtBEB+Pjo4W+3cKGqPT09OUlZVRUFBAfHy8R2zU6XSiXW1tbQwMDNDT08PevXuRyWRIpVJ8fX156KGHWLt2LUuWLHG7LfNxOp1iv8bq6moaGhrELhednZ0olUoCAgLw8fHhvvvuo7y8nLKyMo/atBDUajUDAwM0Nzdz5swZsYPN3/72N2C2cfZvf/tbli5dir+//xV9psPhYHp6moaGBn71q19RV1cndiASejauW7eOrVu3kpubi1wuJzIy8rro0LpNW/X06dPU19fz5ptvcubMGUwmkzi4W61WcQYphFiEvorl5eVUVFTw4x//eIFfZS42m43vfve71NbW0t3djcViETteCI5J6CpwKZxOpziDEXrX/fKXv2Tjxo3ExcUt2L7Gxkb+9Kc/AdDa2kpTUxMymQyDwYDVap3jHIX/+/n5UVxcTHV19YKPfyV0dnby0ksvsWvXLmQyGWFhYVgslotC0TA7SI2Pj2M0GrFarUilUu6//37Wr1/Pbbfd5jEbnU4nZrOZBx54gPb2dlF02mazYbfbxcEbZp15eno64+PjYgumjIwMtm7dyuOPP341h/2X11bt6uqiv7+flpYW8Rnq6ekRnyO73Y7FYqG0tJTMzEzy8vJIT08nJSUFpVLJ22+/zbvvvktfXx8mk4nnn3+e0tJSUlJS3PZlxsfHGRoa4uTJkxw8eFDsLxsREUFWVhZxcXH4+/uzcuVKnE4n7e3tPP3009x1113s2LGD0tJSt9lyIRaLhcnJSfbt28fu3btpbm5menoaPz8/oqOjSU1NJTk5GZlMxszMDHV1deh0OioqKvjtb39LbGzsdRH4vlqEDi3CcyWRSLBardTU1NDX10dXVxdHjhxh7969qFSqK/rMtrY2amtrefTRR5mamsJqteJ0OkU/IQi1+/n5oVQqSU1N5Re/+AV5eXnuDONe8nl225R+eHiYjo4O8QG60OlGRkYSFBREXFwcBoMBjUbDyMgIBoOB1tZWfH19GRoaIioqCj8/vwXbIqxiGxoa6O3tFVewMTExqFQqVqxYgdlsRqlUXjaMMTAwQE1NDefOnRP3rt5//32Ki4vd4hyVSiVZWVns37+fvr4+dDrdRavF+S1vLBYLfX19/OIXv0AikYiNf2+++Wa3nLf5yGQy0c60tDQKCwsv+1qXy8Xg4CAtLS20t7fT3NzM8ePHCQkJ8ahzFCY6nZ2d9PT0iF1MFAoFERERYp88pVKJXC7Hbrdz+PBhcc8kPDyc8PBwj9n3eWJychK1Ws3p06dpbGxkeHiYoaEhBgcHsdlsBAYGEh8fT3BwsNizsKCggLi4OGJiYvDz82NgYICTJ09SVVWF2WwmJSWFnJwc8vLyiIiIWLCN09PTaLVa6urqaG1tRa1WYzAYCA4OZsmSJSiVStLS0oiJiRE7M5hMJrq7u6mvr2fdunWUlpZ6rN+o2WzmxIkTHDt2jLa2NiQSCaWlpSQlJREcHExUVBTx8fFEREQgkUjExuHvv/+++P9PavX3aXGhsxKw2+1kZWVx4sQJuru7CQ8Pv6rQ+fDwMA0NDWi1WjHKdGHfRqfTic1mY3p6mqmpKcxmMy+//DIrV65k48aNJCQkeCzE6jbnaDQaMZlM+Pv7XzQ7jIuLIzY2lvz8fMbGxujo6MBkMol7FDAbWgwKCnLbIO90OtFqtdhsNjFkm56ezooVK/j2t7+NwWAgPDz8sqGV+vp6fH196e/vZ3p6GovFwkcffcSDDz7oFvsiIiJYvXo177zzDlKplPDwcKRSqRhqlUql4r6EQqEQf282m/mv//ovYLYp88qVK9m0aZNHnGNAQABpaWnI5XIWL17M6tWrL/tal8vF6Ogohw8fRqlU0tzcTGNjo9hey5MIXcvtdrvYWTwiIoKkpCQ2btzIhg0biI6Oxt/fn6amJrq7u0XnGB8ff10aM3/WEa5fQ0MDL774Iq2treKEzd/fn/j4eNLS0khISCA2NpaEhATKyspISUlBKpViMpno7++nvr6eQ4cO0dXVRXp6OoWFhdx+++2kpKQseOvEYDDQ399PZ2cnr7zyCufOncNms5Gbm0tFRQXZ2dnk5uaSkZEhTirNZjOvvvoqp0+f5uzZs/z+97+nqKjIYyHVqakpqqqqeP7554mKiqKiooKioiKWL19OaGgoSqUSpVIJzK7Ezp8/T1NTE/7+/pfcSvmsIjguq9WKy+WitbWV7u5uNmzYcFXJbVqtlqGhIZxOJ1lZWYSGhjI2Nsbg4KD42WazGZPJhNVqRa1Ws3v3bsbHx4mMjCQmJsZjIVa3OccdO3awffv2y17cC7372bNn2bVrF08++aT4pRsbG0lNTSUkJGTBtgibtg888ADd3d2o1WoAtm7dSklJyRUt+YuKivj1r39NX18fZ8+e5fz58wu260JCQkJYsmQJv//975mYmGBycvKiGdBLL71EQkIC69evF1eRg4ODPProo2JjYU+GX2JjY9m2bdsl+9LNRyKREB8fz8qVK/Hx8eHFF1/0mF0XIpVKUSgU3HzzzYyNjSGTyXjwwQdJT08nPDxcPE8wO2ES9p8EhFDgvztms5n333+fF154gebmZhITEykpKWHp0qV85StfISYmBn9/f9HBCXuMZrOZ+vp63nrrLV577TV8fX1JTEzk8ccfp7y8XHzfQmf3TqeT5557jn379vHRRx/hcDi4//772bRpE9u3b79kw+qZmRlqa2t5/PHHCQsL4xe/+AUbN270WCKOy+Xi7NmzjI+Pk5CQwCuvvEJcXBwBAQGX/P4jIyOcOXOGF198kejoaAoLC1GpVNe12fG1Mjg4iFqtpr+/nz/+8Y8YDAZycnK44447ROd/JRQVFWE2m3nrrbfEbRiFQiFWEpjNZl5//XX+8Y9/0NzcDMxOQN577z1OnTpFS0uLW3zGpXCbc7yabuDC8lxAoVCwatUqt2ZqyWQy7rzzToxGIxaLBUAMtVwpTqcTo9E4Z9/KnUgkEjIzM1GpVGIm74UIs+2oqCjRQbW1tYkTEKFztie5muvqdDoZHBwUu6BnZ2d7PLNWIpHg4+PDl7/8ZSwWi5j5FxgYeNEg43Q6qampYWRkBJi9RyIiIggLC/OojZ8H5HI5N998M4WFhRgMBtERhoeHo1KpkMvl4sRCKOPo7OzkL3/5CwMDA1itVu655x5yc3NJS0sjLS2NsLAwMWljITQ3N/PCCy9QWVmJUqlk+/btouNOSUmZc52Fve+zZ8/S2tpKTU0N999/P9nZ2SxevNijJTsSiYTi4mJCQ0PZtGkT8fHxKBSKi76/y+VCq9Xy9ttv89577zE5OcnDDz/MmjVrPrOO0W63Mz09TX9/P1VVVRw7dgytVsvU1BQDAwNs2bKFVatWUVhYeFVRLCHh5s0336SkpITIyEhkMhmBgYHA7Ar1i1/8ItHR0VRWVvL6668Ds3ksF5bieYLrXrgnpNoPDg7icDgIDAwkKirKLWGXC5FIJKSnp1/z+4UO1Dqdbk5HcXfzcc76UnubGo3GY7ZcCVarFZg9vxeGM1wuFwMDAzQ1NdHc3IxcLqekpIS8vDyP2ySRSMjNzb3s34X9Wp1OR319PWq1GplMRmhoKLGxsW7ZC/u8I5PJRKd2ORwOcbD6LgAAIABJREFUB1qtlrGxMUZHR6mrqxPD09nZ2axdu5ZFixaRmJjoVtv0ej1NTU34+fmxaNEili5dSnl5OfHx8eIgCrMDuLBarK+vp6+vD5lMxurVq8nMzBS3LjxJVFQUSqWSjIwMAgICLvq71WrFYDBQV1dHTU0N7e3t5OTkUFZWRlZWlkdtuxJsNpv4D2b3oaenpzEajYyNjdHZ2cnRo0eprq7G6XSK22hLliwRndvVEBgYSGBg4EX3zIUZ7llZWfT29tLV1SX+zt/fn8jISI9ez+vuHAcGBqiuruaNN97AYrGQlZVFWVkZQUFB16V25UpRq9VUVlbS09ODwWDA19f3M2OfsJrzdFh1Pg6HQyyD8fX1nZMtZrPZeO2119izZw8NDQ2EhoZy//33s2LFiutm3+VwOBziYL5v3z6mpqbw8/MjPz+f4uJiUlNTP20TP/MIjufEiRO88847nDx5ksbGRrZv305FRQU33ngjSUlJHrkfQ0NDKS4u5vbbbyctLe2ye8QGg4Genh5+9rOfIZVKyc7O5qmnniIkJOS6rsj8/f0vW8qgVqtpaGjgpz/9KZOTk8TExPC73/2O4uJigoKCrpuNl0Or1aLRaBgfHwegsrKSxsZGRkZGaG5uFpMb5XI5eXl5LFu2jAceeID09HSPhTdhNnO+paVFHIOTkpLYvHmzR0s6rptzdDqdzMzM8OKLL3Ls2DHsdjthYWHccsst7Nix4zPjeGD2Bq6pqeFPf/qTuGr09/dn8+bNVz0zWggTExOMjY3R19dHa2srH330EY2Njdc1rArQ29vLhx9+yHvvvYdarcblcuHj40N0dDTp6enMzMwwODjIRx99hNVq/f/YO+/oOK8673+matRGGvVerN5lS7ZkO66JHceJHeKETcIGCIFsAtldWHY3+26AXXgp4SXLgQVCIECcAFkSIAlxErfYkuUiW91W73U0mlHXaDSa/rx/eJ8Hyw2XkWxAn3N0jj31zsxz7+/eX/n+SElJ4T/+4z9YuXLldcUfvInb7cZsNtPY2Mhbb71FS0sLnZ2dUhacQqFgfn4es9mM1Wq97C5/mfMMDw9TX1/PsWPHePvttxEEgejoaH70ox9x5513EhkZib+//6Jt1NLT03n22WcJCAi44mJYVlbGwYMHeffddwkNDeXpp59m27ZtBAcH3/KyCNENffDgQSmTNTo6mscee4ySkhKKi4sXJaHuehBrWb/0pS/R0tKC0WgEkHJCxHh9ZmYmJSUl3HPPPaSkpBAfH09QUNCiGCmDwUBnZyf/8z//w+nTp+nv7wfOVz+sXbuWZ555ZlG/t0U3jh6PB71ez8jICD09PVRVVTE4OIhMJiM7O5v09PRrrolZbDweD7Ozs1RVVVFdXc3AwAAul4uAgABiYmLYunXrorvgpqenmZiYoKurC6PRiF6vp7e3l6GhIdrb26XsXmBBssliMjc3R39/PzU1NVgsFjweD0qlEn9/fwYGBqSJNTo6Sn5+vjThg4KClnxhEgRBOkF0d3dTVlbG6dOnpeJrEY/Hg9FopLe3l+jo6CVTHfpzwuVyMTMzwzvvvENzczOdnZ2SQlNGRgZ33HEHCQkJi640IxZ+Xw673c7IyAgffPABzc3NKBQKHnjgAVatWuWVkqubwel0SnO4urqaqakpFAoFRUVFrFmzhsLCQlJSUq65YH4xmZub4+zZs/T09DA4OMjU1BTBwcE4nU7UajUlJSVStnJaWhqFhYVSiZ63GBgYYGxsDKPRyNTUFCMjI5Kox/DwMA6Hg4iICHbt2sWWLVuIjY3983ar2u12GhoaqKqq4vjx4zQ1NWGxWFCpVJSWlpKamuq1L1iUOxOTNK4Ht9uN1Wqlr6+P/fv3U1VVxdTUFEqlkrCwMLKystixY8einDDEomqxHqu1tZV33nlHUvwYHByUEnLEdG8/Pz/pb7FP3S6Xi+npaQwGg3RSFUtlhoaGpP8LgkBWVhabN28mISFhSVQsLsbj8WAymSgvL+f48ePs27dvwf0KhUJSfRkcHKSlpYWYmJhl43gRgiBgsVjo7u7mZz/7GaOjo2i1Wj7+8Y+zadMmMjMzr1qELcam5XL5oikkiTHQmpoa3nnnHfz8/CgtLeWpp57Cx8dHSsS7GDGx6HqSza5nTG63G6fTyfT0NHV1dVRXV/Pqq6+yY8cOVq1axZo1aygqKrqtkm/m5uaoq6vD6XQSEBCATCYjIyOD6elpNBoNjz32GHfeeeeiec48Hg8NDQ00NDRQU1NDe3s7MzMzWK1WqaTDz8+P6OhoHn30UTIzM6WESVGGT/xNvcWiGkeXy0VdXR0///nPOXLkCC6XSzqe+/r6SkdzbyDGw8rKyggMDOS+++67ruc3NjZy5swZfvCDH6DX67Hb7fj4+JCVlcXdd9/N1q1bpYvG23R1dXH69Gn+6Z/+SSoCFieZ6EIVhQBE/vVf/5XNmzdTWlq66C6ZqKgo0tLSyMnJuay2qtVqxWw243K5OHToEF1dXVgsFnbu3Lnkah9Op5OjR4/y29/+9hLpOLlcTlZWFkajUYqdLnN59Ho9J0+e5LnnnmNqaoqdO3fy1FNPUVpa+ifj72azmTfffBM4HxvasWPHooyxurqaEydO8OKLL5KTk8P27dt58MEHMZlM1NfXMzAwcNnn5efnk5WVRXBwMP7+/l413tXV1dTV1VFbW8tbb72FRqMhNjaWxx9/nLi4OBISEtDpdNhsNjQazW1jIGNiYvi3f/s3nnjiCSwWC/Pz86SlpUmnt8OHD1NSUrIoxtHpdNLe3s7LL79MZWUlc3Nz0mZbRBAESQ703nvvJTw8nMTERHx9fdm+fTvr168nPT0drVbrtd9zUY2jTCYjKChIKrQWL1Yxe/DIkSP4+/sTGRnplffy9fVlxYoVN+SmqKmpYf/+/QwPD2Oz2cjKymLPnj0UFBSQmJhITEzMop3QgoKCSEhIICoqiuHhYWZnZyVBADErdOPGjXR2djI0NIQgCJw9e5aYmBg2bdq0KGO6EDE1PSkpSVKggT/WrppMJjo7O/ntb3+LzWajt7eX1157jbi4OBQKhVd+3+vB5XLhcDgkUYB169aRmJhIUlISeXl5HDx4kIqKCrq6uqitrSUiIoJt27Yt6RhvV+x2O1VVVRw+fJj6+nrGxsb4u7/7O+k7NBgM9PX10d/fT21trbSZu3BuuFwuenp6cLvd6HQ6Dh8+zBNPPCHFp24Wl8tFb28vhw8f5tSpU4yNjTExMUFVVRUmk4ne3l5GR0fxeDwUFhZKzxMEgd7eXiorK/Hz85Ni5qKrMDMz86a8HR6Phw8++ACz2UxAQAAbNmxApVKhVCoZGhqip6cHjUZDUFAQvr6+xMXFERcXR25uLvHx8Yvmnha9UnK5fEF274WI60xoaChBQUG4XC7ppOZwODAajTQ0NOBwOLyeVSuTyfDz85PWPNH7B+ezVmNjYxkfH8disUiHhtHRUWw2m9QV5MSJEyQmJpKYmEhaWhobN26UhMpvlEU3jsHBweTk5DA5OYnNZmN6elpauBoaGigpKbmmIvNreS+NRkNCQsIN7Rz6+vo4d+6cpIGYkpLCgw8+SHZ29qLv7gIDA0lISGDt2rWSQPuFahlqtZpt27ahUqmkC9VgMDAyMrIkySQajYasrKwrlksYjUZaWlpob2+no6OD0dFRKisrqampQavVLqlxFGX1wsPDiY2NJTg4mC1btpCTkyOpp0xOTtLX10dXVxcDAwMMDg4u2fhuZ0Sh7OPHj3PgwAG6u7uZn58nNzeX8PBwyfA0NTXR1tZGWVmZpAOsVqsJCgpaoEwjdr2pra0lJycHu90u1T/ezBitViu1tbWcOXOGpqYmSanFZDIxMzMjdeLQarULjLEgCCgUCiYmJhgcHMRgMDA4OEhUVBRGoxG1Wk1ERMRNxcpnZ2el02JaWhqApB40OjrKzMwMZrMZu90uZYbabDbsdrtUVuTNTbjD4aCzs1PqhHQl4yji4+OzwBPl5+dHYGAgs7Oz9PX1odPpvG4c5XI5gYGBxMfHk5qauqBbkkKhID8/n4GBAan9nPi5REm5iYkJzp07R0hICCkpKaxcuRKdTsfKlSvx9fW94d9yUY2jXC4nPj6ef/zHf+Rv/uZv+PnPf87evXsxGAySFJDZbJaCvjeDOEFvNAhvsVikriFJSUmSMVgKt4e/vz+pqam88sorV33cypUr+fDDD3nhhRek1OmmpiZWrVp1S+J7IlFRUURERBATE8MPf/hD/vCHP2AymfjhD3/I4ODgkpZzqFQqNmzYgEwmY3JykjVr1lBQUCBtIMxmM6GhoaSlpVFWVgZcvTvLXxNiItPLL7/M+Pi4FLMTy196e3slqS+VSoVOpyM+Pp7AwEB0Oh0PPvigFOtrbm6mvr6ewcFBBgcH+fKXv8ymTZvYuXMnjz322E0Zn+7ubv7zP/+T4eFhBEEgKiqKrKws8vLyKC4uZuvWrX9y3jocDlpbW/nOd77DgQMHeOmll/jIRz7C/fffzwMPPHBDJ1y5XM5///d//8nHiTXBvb29NDc383//7/8lLS2NzZs387nPfc6rJ8jR0VE+9alP8eijj1JaWnpDsnlyuRwfHx9Jxs3byOVyIiIi+Od//mepaYCIUqkkLy/vEuPY2dlJeXk5NTU1GAwGSRd4dHSU5uZmTpw4wauvvsqKFSvQarU3NK4lK+UIDQ3liSeekFT++/v76erq4siRI/j5+fHggw8u1VAuS2BgIMHBwVIvuIaGBr7//e/zzDPP3BbZZAAlJSWEh4czMjJCXV0dvb29DAwMkJOTc0uNI5y/wJOTk3n44YeJioria1/7GjMzM3R0dLBv3z7uvvvuJUlXl8vlxMTEsHPnTlwuF/7+/tJiIy5KH374Ie+8886ij+XPjaGhIerr6xkfH1+wQFVUVEjJbqmpqaxbt47s7GzS0tKIi4tDo9GgVColuT6Px8O2bduYmZlheHiY6upqXnvtNUmAISAg4IYWarPZzNtvv81bb72FVqvlgQceIDs7m9TUVCIjIwkICLisMtLlUKlUpKen8x//8R+YTCYGBwf5+c9/Lumwfu9731u0RCKZTEZ0dDQhISGSAMBPf/pT3n//fQ4dOsTPf/5zIiMjvaLmI/biFOOI18vg4CD19fWUl5eTnJy8qO3n4uPjiYmJuSSnQa1Wk5CQQGxsrHRbWload9xxB6Ojo5hMJrq7u/nOd74jJfH09PTwve99j4ceeohdu3bd0HiWzDiqVCpiYmLIycnBZDLR398vqS6IGY+3kuzsbDZt2sSRI0dwOBz09/dz7Ngx7rzzTpKSkm4LiTHRXahQKJicnMRqtUqxldsBjUZDWloac3NzREZGMjU1xezsLCMjI1L7r6XgYteQiBjUn5iYkMo6xAm5zPk5Kho6lUqFWq1Gq9WSkpIi3ZaRkUFxcbEUqwsLC7vigul2u4mOjiYgIIADBw4wPDxMT08PPT095ObmXvf45ufnGRoaoquri23btrFx40YyMzOJiYm5bv1WMc6VmppKbGwsCQkJ1NXV0draSm1t7aLPKbVajVqtljoDlZSU4Ha7OXnyJKdOnWL16tVeSVb0eDxMTU0xPT191ebuFz/H5XIxPj7O6dOnOXXqlOQFXEyR/qttni8+Tfv7+xMaGkp0dDQzMzPExcXR19fHkSNH0Ov1zM3N0djYyOrVq6WGGNeL142j2CfxSqxdu5axsTFOnDiBx+Nhfn5ecmfeSnbv3k1mZiaTk5OcOnWKzs5OBgYGWLduHXfddRcrV6685aczOO8O6unpwWaz4ePjc9sYRpGYmBjcbjeFhYWcOXNG+o1vdbcBMQPYarUuOBUVFRUtSNr4a0bsnBMZGYlSqUSn05GTk8MnP/lJgoODUSgUxMXF4evre00nCIVCQVhYGOvWrZNivWKm8JXKLK7G/Pw8VqsVuVzOpz71KVJTU286wUepVBIYGEhgYCCf+cxn2Lt3L2+++eaSXa9iIuEnP/lJEhIS6O/vZ+/evQBeMY4ulwu9Xo/RaJR6mF6OC/vc2u12zGazdOKvrKxkzZo1rF27dknkIK8HUY0oKiqKoqIiPv3pT1NWVkZ/fz8jIyMYDAbGxsZISEi47tf2qnGcmpri7NmzlJaWXtFSb9y4EZPJxP/8z/9c9cdaagIDA0lPT+cLX/gCAwMDdHR0YLPZ+H//7//xxhtvUFBQwIsvvnjNbpvFQqfT8eSTT/LNb34Tu91+y9U/LkdQUBCPPvoofX19Xq0lm5yclDLZrrfRqejC37t3r5Q1LZfLCQ0N9arg/Z8zWq2WvLw8Dh8+jFwuR61WS23kxOvsemvJnE4nU1NTDA8Po1AoyM7O5sknn7yh03pCQgJf+cpX+Ld/+zcCAwO9Pg/FhJN77713yeeVr68vBQUFfP7zn+fv//7vOXfuHOvWrbuhRf1iBEGgoaGBkJAQdu7cKbm/RRUpQRAwm83U19dz8uRJurq66OzsZGxsDH9/fwoKCvjGN75BSkrKbVN6ciWeffZZcnNz+eIXv8jExAQtLS2cPHmSRx555Lp/U68Zx76+PmZnZ6Vd55VQqVSoVKrbblEX3SzZ2dls27YNf39/ampqmJ2dZXBwEKfTyS9/+Ut2797tlQv2RnG5XIyNjUlF1rcjYtajN12pbrebt956i7GxMdxuN6WlpeTk5BAaGnpFd4yY2Xj27Fmqq6ulxtJiRnJWVha5ubm3jULTrUZMahPLlm62gH9qaoqWlhbefPNNenp60Ol0pKamEhERcUPxZ7EU4U9lXF4v8/Pz6PV6PvzwQ2QyGenp6Te1PrlcLpxO53W78rRaLRkZGSiVSoxGI62trcTHx3slk99oNFJZWcnzzz9Pbm4ucrkcu91Oa2urdFocGRlhcHAQq9WKy+UiKyuLtWvXSi7e2yX34mqIZYOi8ff19b3hDGCvGUexKXBeXt5VB2K1WqXGtHDez7xY+ptiF+krGRJRuNvX1xeXyyXVZW3cuBGbzUZjYyM2m01KvX7zzTeltPalvlBmZ2elVjft7e3YbDbUavWiuVXn5+dxOp24XK7r0qcU0/gHBwex2+1eKzPxeDycOHGClpYWLBYLExMTCIJAeno6UVFRqNVqqYxALCKen5/HYDBw5MgRKisrOX78uCR9FxISwh133EF2dvZys2OQriOZTHZTiVMejwe3243dbqezs5Njx47x4x//GK1WS2pqKllZWbfc+3Ihdrsdk8lEVVUVZ86cIS8vj4yMjJsySLOzs8zMzFx3n1C1Wk1wcDBKpZKpqakrihhcDwqFgvDwcMxmM62trXR1dbF69WpUKpUkJC9qJavVakkzOT09nTVr1rBr1y6Ki4tvaUa3WPoHf4xLXsmDcaFYilKpJCgo6IZLybxmHC0WCz09PTQ2NvLZz372igksBw8e5NixY0xNTQHnYz67d+/21jAWYDabaWpqorW19bL3+/r6EhISwj333CPpv46NjZGUlMTq1aupqamhsbERp9OJ3W6npqaGt99+m9nZ2RvOgLoRHA4Hr732mqTVKJZ8JCQkLNoJ/NixY7S1tdHb28vXv/71a05IMpvN9PX18eabbzI2Nua1RCa5XM6WLVukrgYvvvgiR48epaioiMcee4yVK1ei0Wiw2Wz87ne/Y2xsjP7+fvbt28fs7KwUZ5TL5URHR1NYWMg3vvGNZcHx/2VsbExK2b/R1Hc47/o2GAzU1tbyve99j87OTvz8/HjyySfZvHkz69atu20MoyAI1NTUcPToUb71rW+xefNmNmzYcN3qWhdz5swZKioq+OY3v3ldn3VsbIxTp04xPT2Nn5/fguzMGyU0NJRvfetb/OpXv6KtrY2xsTGOHTsm3a9QKKT48po1a0hMTKSkpIR7772XwMDAW+7hc7vdtLS00NfXh8fjYf369cD5+svLxZtfeeUVDh8+DJz/7OHh4YSFhd3ak2NoaCgdHR28+eabZGdnU1BQcNlWQLW1tbS1tUlNaePi4rwqSfSLX/yCc+fO0dfXh8PhwGw2Mzs7e9nHKhQK1Go1P/nJT7BarVIxrp+fH7Ozs5LwuIjT6eS9995jZmaGoqIiIiMjvT7Rjxw5Qm1tLcePH18gHSfqq9rtdkk5x2QyUVFRwd69e1m9ejXJycn09PSQk5Nz00ZJEARMJhPvvfceJpOJlStXUlxcTGFhIUFBQZc9XYi6pt3d3VI2aFJSEh/5yEduunZLoVCwfft22traqK+vlwq5p6enaWtrQ6vVSgobRqMRh8PB/Py8ZBhFF2FJSQn3338/mzdvxs/P77ZZqG8lHo+H6upqmpubGRoaIiMjg7Vr15KYmHjJrnt2dhaj0SjNqe7ubkwmEyaTCThfDmIymXC73YSEhHD//fezceNGNm/eTFRU1C3r0nIhDoeD6elpDhw4wLvvvsvAwAArV67kH/7hH8jLy7vp17darQwPD/Ozn/2Mu++++5paolksFhobG3nppZewWq1ERkbe9AkWzhuRHTt2EBsby8DAAD09PdJ9crkcnU7HihUrCA8Pl5R7goODCQgIuOWG8UIOHjxITU2NtK4lJiZKyXSi56i6uppDhw7R1NQEQFxcHLGxsdednyDiNeMYHh6OVquVSiBmZ2elgmsfHx/cbjd6vZ7W1laMRiNyuZzg4GC0Wq1XYwgTExN0d3dTWVmJ1WpdoE96JcQFUtTzu1Cd5kIEQWBgYID+/n6sVqtXM9rE7iWVlZWUl5dLtWWANJ6LJ4rNZsNgMFBWVsb8/DxGo5GzZ88SERFx08YxLCwMnU7H/Pw8x44dkyS6RkdHSUpKIjIykoiICOnxYgf22tpaqqursVqtFBQUkJeX57WYXmxsLPn5+ZSWlnLu3DnGxsYwGAwYDIZLHnvhdyeqt0RHR3PXXXexceNGVq5c6ZUx/aWgUCgwmUw0NDRI17fYkkhEEARmZmakrg1wPtFpdHRUanE0OTmJ3W4nJyeHoqIisrKy2LBhA6mpqYtaI3cxdrsdp9OJ2+1mbm4Ou90uKXRZLBbGx8epqKhgdHSUoKAg1q9fT3FxsVc26n5+fvj7+1NRUSG57a8UhhHDEI2NjVRXV9PY2EhkZORNLeoXolAoiI2NxdfXl5SUlAUC+zKZDJ1OR3Jy8m2blCYqXimVSqxWK729vVitVrq7u6X16ELj2N7ejsViITY2luLiYpKTk284TOC1qzU1NRWDwYBarebll18mPj6enJwctm3bRnR0NBaLhVdeeUWSaJPJZAQGBuLn5+eVYleR4uJi5ufn6evro6+vD7fbfUVjJ3Jx4sjVHrtYvnebzcbbb7/N22+/TWNj44L3Ef994W2iQXe73ezfv5/GxkbCw8OlLLeblXhas2YNCoVCMtYnTpzgxIkTAGzatIk1a9YscIe7XC4qKip4//33qa2tRSaT8cQTT7Bly5abGsfF7Ny5k5ycHH76059y6NAhSbHlaoSFhVFYWMg999zDpz/96VveO+92Qy6Xs2HDBkZGRmhra5NitAEBAYSFhS3YMIqGxWKxXPIacN6DlJyczKc+9Sm2bNmyaNKBf2pjOj4+zsTEBBaLhY6ODkZGRhgYGJD0Vy0WCzqdjscee4yNGzeybds2r3kRUlJSWLduHf/n//wfNmzYQFxcHMnJyZesHWKBvsFg4Ac/+AFVVVVYLBY++tGPUlhY6FWDFRISQkhIiCRp9+eCXC4nJSWFRx55hMTERN544w26uroYHh5Gr9fz/vvvAwvXxoSEBLZu3co//MM/EBcXd8PvLfsTF9l1HY1mZmZoamriySefxGAwIAiCpG0npgs7nU4p6P+lL32Ju+++26u7eJvNxuzsLCaTiYmJCaampqTmxRd+VqfTSUdHx4LODaIklli8XFBQcMlut7CwUNoNazQarxnLmZkZvvCFL1BeXs7AwMACg37hv7VarSSPBkgL1wMPPMCOHTtwOBxERkZ6JWHIbDbT1dXF73//ezo6Oujt7aWlpQWVSnVJIpUgCFKylUajYdeuXXzxi18kIyPDq8lLYpLV5OQkdXV1nD17lnfffZfm5mYcDgdKpZK0tDQmJibw8fHhzjvvZNeuXaSmppKYmOit9mh/rnpzV5zP4vycnJyksbGR+vp6mpqaKC8vlxp+i48TE9fuuecefHx80Gg0aLVa7r33XgICAvD19SU6OnpRuk643W4mJib4yle+QmJiIhqNBpPJRExMDNPT0wwMDDA0NCQZ8Lm5OQRBQK1W4+/vL8lCpqenk5+fT0xMDIGBgV69Rh0OB1NTU7z88sucOnUKi8VCUVERd9xxB+Hh4dI1WFFRQW1tLfX19djtdtLT07n//vvZtWsXoaGhy/HwCxATIzs7O/n85z9PZ2fnAlEDcT0sLCxk48aN/N3f/R0rVqyQEvX+BJd9gFf9HP7+/mRnZ/Poo4/S0tJCb28v/f39UranSFxcHEVFRaxbt87r6iQajUZSnoiOjsZqtTIzM0NUVNQC4+h2uzEajWzdulW6TUwV93g8UqeMi/3uCQkJhIeHX+uXfs0olUpyc3OZmZnB19eXjo4OACIjI0lOTiY8PBy5XE5QUNBlO0gUFhZ6/bv08/NjxYoV3H333eTl5WEwGKiqqmJsbIzZ2VnphO5wOFAoFOTl5REZGUl8fDzbt28nJibG66c0MWkkIiKCwsJCQkNDCQkJQa/X43a7kcvlREZGSj1Ds7Ozyc/PJyQkxKuNWf/SEN1Xfn5+UjZvZmYmOTk5l8329vf3Jz8/X8py9PX1JTs7G7VaLcXyFwPx909PTycgIAC73S7lB1itVubm5tDpdJKSlKjbLHYHSkxMJDY2lqioKEn6ztsGXMw63bJlCxqNhsHBQWZnZ6msrATOb8x9fHwYHR1ldnaWxMREcnNzycrKYs2aNURFRd0WgiO3E6JyU2ZmJvfddx/Nzc0MDg5y7tw5FAoFWq2WlStXsmXLFgqKALmLAAAgAElEQVQKCoiLi7vpNdqrJ0eRkZERzp49y6lTpzh69Cgmk0nawclkMoqKivjEJz7Bnj17Fm0S/bnhcrlobGykpqaGhoYG/vCHPyAIAjk5OWzZsoW8vDzpIliKNlWXG5/VauXMmTO0t7djNBqZnJzk6NGjmM1mVCoVH//4xykoKCAtLU1aOP9CRb3/XD/UrZUp8hIul4vu7m7MZjMmk4mamhrMZjNutxuFQiF5CXQ6HYIgoNFoCAsLu6bEGG8zNjZGT08P+/bt4+zZs1KMPCgoiJSUFJKSksjNzWXXrl1ER0cvr4fXQHNzM52dndTX1/Paa6+hVquJi4vjiSeekMJ417nuXPbBi2Ic4bz7S/y7+D1kMhkKhWI5U/AiRPkm8Q+QirEvPMHeyiwy8fe8UG5KRKFQSOP9CzWKIn+uH+4vwjjCH2OOF1+DwCWqTJeL2S8loiv64rVQHKc4v//C54zXuHDtEfNFbtKmLK1xXGaZv2D+XFex5fm8zDKXctn5fPsUsiyzzDLLLLPMbcKycVxmmWWWWWaZi1g2jssss8wyyyxzEcvGcZlllllmmWUuYtk4LrPMMssss8xFLBvHZZZZZplllrmIZeO4zDLLLLPMMhexdDL5yyyzBHg8HlwuFxaLhfn5eaxWK3C+Saqfnx9yuRw/P7+bbqG1zO2L0+lkfn6e+fl5zGYzOp0OPz+/JdMqtVgsmM1mSfvzwj6Zorzl7crs7Cx2ux273c78/PwCfWc/Pz98fX3RarV/FQIuy8Zxmb8YxEVxcHCQt956i4qKCsrLywHIz89nx44dBAYGcuedd1JcXLysX/kXiMfjoaenh5MnT1JZWcnevXv5l3/5F7Zt28b27duXZAwHDx7k1Vdf5cCBAwiCgFarJT8/n09/+tMUFRWRm5u7JOO4Ed555x3OnTtHS0sLZWVlUi9UHx8fNm/ezNatW3n88ccJCQm5rfo9LgaLrpBjs9mkzhjV1dWcOHGC8fHxBUr/Ilu3bmX16tXcfffdN/u2142o4G+xWOjr62NsbIyRkRH0ej0JCQlkZGRwzz33LMp7nzlzhrKyMo4cOXLJfVFRUWRkZLBy5UpcLhejo6P89re/JSoqitTUVNasWQOcF4IOCgpi1apVizJGOC/W3tbWRllZGS0tLXR2dl4ieZWUlEReXh6f+9znvC7O/qc4c+YMBw4c4PDhw5hMJqanp6W+gwEBAYSGhiKXy8nPzyc7O5vCwkK2bNlyI33z/qoUco4fP05HRwetra00NjYukG67UJotPz+f++67j3Xr1nm1y8XVsNlsjIyMUFdXR3d3Nx0dHXR0dDA1NcX09DRGo5Fdu3axZcsWHnjggcs2E/AGYgPl8vJyDhw4wKFDhzCZTAiCgEqlwt/fn4SEBO69916eeuopEhISbrlcnMfjYXBwkLa2Nnp6emhoaKC+vp7p6Wk8Hg8xMTEkJycTEhLC9PQ0dXV1+Pj4sHr1av7rv/6LoKCgRR3fxMQEIyMjTExMMDQ0xOTkJFNTU9TW1i5omSZqOf/93//9jb7V4nflEBHdWpOTk3R2dmI0GhkZGaG2tpaqqiomJiYuaxxFNf+NGzd6tR3U5RgfH8fhcEjNUAcHBxkdHWVycpL+/n6pkebw8DAZGRk4HA527NjhtTG53W7m5+dpaWmhvLycDz/8cEGDY5GoqKgF3dXHxsYoLy8nKiqKvr4+afH39/cnJCSEubk5qVdmWloavr6+Xhuz0+mkqqqKY8eOce7cOXp7ey957cTERMbHx1m3bh3Z2dlL1gnD7XYzMjJCfX09tbW1qFQqAgICKCwsRKlU4nA4MJvNDA0N4XA4MBqNTE1NkZmZiVarXe7xeBFzc3PMzMyg1+ulNmpGo5HZ2VmpQ4L4209NTaHX6xkfHyclJYXc3NxFM45utxu73U5vby9jY2NMTU1hMBg4d+4cPT099PT0XNLjs7+/n5qaGvz9/dmwYQPR0dFe7ZXY3NyM0WhkbGyMDz/8kHPnzjE1NUVQUBDJycmoVCo6Ojro7OwkNjaWuro6wsPD0Wg0t+z0NTMzg9FopLy8nM7OTgwGA3q9noiICOLj4/H19SU3N5eEhASCg4MxGo1UV1czODiIVqvF5XIt6viampro7u6mu7tbalM2MzPD9PQ0w8PDksi8eF1OTU2xZ88ewsLCvOa29rpxFPvCtbe3U1VVxcsvv8zIyAhms3nB4y63YJ89exatVstHP/pR4uPjvd45/ELh3/r6eiYmJpibm6O3t5eTJ0/S1tbG+Pj4Jc+z2Wxej1HZbDaGhob46le/SktLC3q9Hrj0ezGZTJhMJk6dOiXdJpPJpNurqqqAP8bUUlJSkMlk5OTk8Nxzz5GYmOg19+H8/Dy//vWvaWtrY2JiArlcjkKhkL5Tj8fDwMAA09PTvPTSSzz33HNLZhztdru0SMtkMiIiIkhLS+ORRx4hKCiI8fFxmpub+cUvfoHBYGB0dJS+vj7p5BgdHb0k4/xzQa/X09DQwOuvv05DQwORkZEUFBTwxBNPSAsmnDdWp0+f5pVXXqG2tpbu7m4MBsOiNTm22+0YjUZefvllDh8+TH9/vxRnhj/OnwvXjpaWFjo6Ojhw4AD/+I//yM6dOykpKfHamH7yk59w6tQpJiYmMBqNuN1u1Go1mZmZPPPMM2i1Wv7zP/+T9vZ2Wlpa+OUvf8nq1aslA3kr6Orq4vDhw3zjG99ArVYTHh7O2rVr+dd//VcSEhLw9fWVjIzL5cJoNPLKK68wOzuLTqdbVKPudrt56aWXOHXqFO3t7RQVFREeHi71Bt6zZw8REREEBATws5/9jPb2dk6ePMnJkydv1BN0WbxqfaampmhoaOBHP/oRXV1d6PV6rFbrNe8ypqenaWpq4qc//Slf/OIXCQ0N9Urg1+1209fXx69//Wuqq6vp6upidnYWp9MpKeaL/9ZoNNjt9gUnuNjYWPLy8m56HBdiMBj43e9+R11dHdPT0zf9ena7HYfDQWNjI3DeWNpstj/ZMf168PX15dOf/jSVlZUMDw8DUFJSwvT0NI2NjRw7dgyHw4HT6aS/v39BD8/FxtfXl8zMTHbv3k1OTg579uyhqKiIsLAw5HI5DoeD8fFxXn/9den3vVLXmL9mPB4Po6OjPP/889TW1uLn58fnPvc5Vq9eTXFxsdT/UNwE//jHP+b48ePU19eTnZ1NdnY2CQkJizY+s9lMX18fv/nNbzCbzQiCgJ+fH1lZWaSkpJCZmUleXh7R0dEEBgZis9koKyvj5MmT7Nu3j1/+8pfExsZ6xTi63W7Gx8fp7++nv7+fubk51Go1GzZsYNu2bdx1113Ex8djNpv56Ec/yg9+8ANGRkawWCy0traSn59/SzZlPT091NbWcu7cOb7zne9QWFhIfHw8gYGBBAYGLvAKuFwu9Ho9X/va1xgeHiYrK4t/+qd/wt/ff1HGptfr+eCDD3jvvfdYsWIFX/3qV3n88ccXhGhUKhVTU1N0dXVJ7RBDQ0NZtWqVVzfjXjOONpsNvV7PoUOHaGpqwmQyLfALX4jYHFWn0zE1NcXMzAyA5DasqKjgE5/4BP7+/l75EQRBwGazMTc3x+zsLJOTk5jNZimD7ELfud1uZ2RkRHL7+vj4sGLFCoqKirzq5vX39ycjI4OMjAzGxsaYm5uTDM6NIggCDocDrVZLQEAAPj4+Xh2zSqWiuLiY8PBw6TdLSkqip6eH8fFx6b3UajW5ublL2slcJpORmJjIXXfdRVFRkbRAqtVqZmZm6Orq4sSJEzidTumzZGdnS4voMn9ELpcTFxeHy+UiPT2djRs3smLFCnQ6HW63G6vVyvDwML/97W8pKytDr9fj6+vLtm3byMjIICAgYNHG5u/vT0xMDFu3bmVgYAClUsnKlSvJyMiQjHZhYSE6nQ4fHx+cTidjY2MMDg7i8XiYm5u7bPPmG8HhcNDe3o7dbker1RIVFcXq1atZu3YtJSUlJCcn4+vri91uJyQkBKVSKfVFbW9vJyEh4ZYYx6CgIAoLCwkKCiInJ4e4uDi0Wu1lPXV6vZ6zZ89SW1tLXFwchYWFZGRkeN2rJyKuv3fccQcFBQVs3bqVqKioBetYb28vTU1NlJeXMz4+TmZmprQueTPJzmufUNzRHTp0CL1ef8VTg9iwNzExUVpY+/v7mZ2dxe12MzMzQ21tLaOjo0RERHh1hxISEkJsbCwWi4WxsTGCg4OJj48nJiYGp9OJxWJhZGSEsbExZDIZSqWSiIgIcnJyvJ7ootPpKCkpoampiaGhIUZHRxecaNxuN4Ig4HQ6LznJXg2FQkFcXByJiYn4+/t71f2hUCjIzMwkMzNTus3lcmG32yX3kEwmIyAggNLSUrRardfe+1qIjY0lNjb2ktsHBgaoqKjgF7/4BQ6HAx8fH8LCwli/fr20Y17mPDKZDLVaTXFxMTk5OaxcuZKUlBRpYZ+ensZgMFBfX893v/tdHA4HgYGBrFixgrvvvpuMjIxFjd8GBgaSnJzMxz72Merq6lAqlXzkIx8hLi6Ovr4+mpqaiI2NRalUSvMoICBA2qj5+vp6bQF1uVwMDQ2h1WpJT08nLi6Oj33sY2RmZhIfHy89TqlUEhwcjEqlkozKwMDAFQ8Pi01YWBhhYWGUlpZe8TGCIDA/P09bWxunT59Gr9fz0EMPsWbNmkU36DKZjAcffFDyRMD5g5PL5WJ+fp7a2lpOnDjB+++/j0wmY+3atdx///3eTxC6sHHtZf6umYqKCuHLX/6yIJfLBZlMdsW/uLg44TOf+YzQ3t4uWK1Wob29XXjjjTeEpKQkQaPRCDKZTFAqlcLevXuF9vb26xnCVfF4PILb7RZsNpswMTEhjIyMCOPj44LFYhGcTqfQ2NgovPTSS4JarRZkMpmg1WqF3Nxc4Y033hC6u7u9No6LcblcwszMjDAwMCCUl5cLZWVlwr59+4QXXnhB+PrXvy78zd/8jRASEnLV71T8U6lUQkJCgvDLX/5SGBoaWrQxX8i5c+eEf//3fxeUSqUgk8kEX19foaCgQPp9bwceeOABITY2VpDL5UJgYKCwe/du4fvf/75gsVgEt9t9Iy/5p+bN7fp3zYjzRcRsNgvt7e3C008/LWRmZgoqlUoAhPT0dOHpp58W6urqBKfTeT1vcVN4PB7B5XIJLpdL8Hg8gtPpFCwWizA5OSkIgiDY7XZhaGhI+P73vy/k5uYK/v7+glKpFD7/+c8LFRUVXhuH2+0WnE6n4HQ6pbFcbqzz8/PCxo0bheDgYMHf31949913Bb1e77VxeBNxTXrxxReFLVu2CJGRkcLjjz8utLW13eh8ue73d7vdC77Lrq4u4d133xUeeeQRISQkREhOThYeffRRoaWlRZienr7s934dXHa+eO3keOGLXg5/f39yc3PZs2cPxcXFxMXFodFoiIuLw+12k5GRgcViwW634/F4mJqakgq4vYHYdVutVqNQKPB4PNKpqre3l9/85jccOnQIp9OJUqlkxYoVPPjgg5SWlnotwHs5FAoF/v7+qNVq6ZQ8MjLC2bNnsdvtKBQKoqOjMZvNUtfriz9Xeno6iYmJJCYmUlRURGlpKWFhYYs25gtpbW2lv79fGltqaiqlpaXExsbe8gxQvV7PD37wAxoaGpiensbPz49//ud/ZvXq1WRkZEgB/mUuRZwvACdPnuTUqVOUlZXR2dkJQEZGBkVFRdx7772kpaWRnJy8ZIXhwv+GSZqbmxkZGWFycnJBDNnpdNLX18fg4CDt7e3o9XpiYmIoLS3lkUceISUlxWtjkcvlf/IaGh4e5tVXX6W/vx+r1YpKpbrlZRxXwmg0Si7L8vJyfH192bFjB08//TSxsbFLMl/E68hmszExMcHvfvc7amtrMRgMADz11FOkp6eTk5NDQkLColU2eM04arVawsLCCA8Pl+pkFAoFkZGRBAYGEh4ezvr167nrrrsklx+cN5qhoaGSTx7OX3AqlWpRJpvoLgWwWq1MTk5y4sQJTpw4QUNDA3A+jrZy5Uo2btxITEzMkhaLm81mTCYTvb292O12Jicn8Xg8KJVKKWAeExMjPV6hUJCXl0dKSgorVqxg5cqVREVFLXoWnCAIuFwu2trapAxROB+jValU6PV64uLi8PX1vSVqGjabDYPBwP79+zGZTAQGBpKens6OHTtITU0lNDR0ycf058TMzAxms1kqHRL/lEolGRkZpKamkpeXR1ZWFjqdTlIk8vf3l8qHFuN3F2N2DQ0NVFdXMzAwsCDDXBAErFarlDVrNpsJDw8nNTWV7du3k5eXtyQ1mIIgSKUwjY2NfPDBB0xMTOB0OlEoFExNTTE2NoZGo7ktrkXhf0M4Z8+e5fTp0xw/fhy73U5hYSGlpaUUFRUt6TzW6/UMDw/T29vL8ePH6evrQxAESktL2b59O2lpaZcNoXgTrxnHgoICFAoF1dXV0glMq9Xyt3/7t6xdu5aMjAxSUlIu+wVf7sRZWFhIXFyct4Z3WXp7ezl69Chf+cpXJKknlUrFk08+yebNm1m9evWivr+IxWJhdHSUc+fOUVlZydmzZxfUPMpkMimVfvXq1fzLv/yL9FyZTIZKpVq0zcSVcLlcTE5OcvjwYVpaWqTb+/v7sVgsGAwGnn322SWtdbyQ4eFhOjo6GBkZweVysWbNGr785S9TXFz8VyF9dTO4XC6qq6uprKzkN7/5DcPDw9jtduRyOQEBAeTl5ZGdnY3b7Wb//v3S87RaLQUFBaSnp6NQKAgICPB64sbMzAwdHR08/vjjGI3Gy9ZLX8yqVavYuXMnjz32mFfHcjUcDgdnzpzh29/+NpWVlQsy9j0eD6dOnWJkZIS0tDT27NmzZOO6Ei6Xi/Hxcb797W8zMDBAUFAQX/va11i1atWC+OlSIAgCr776Kh9++CGVlZUUFRWxadMm1qxZw8c+9rElG4fXrly5XE5GRgYvvPACX/3qVxEEAblcTnBwsFQzc/GiJAgCDQ0NnDx5koMHD0oGaimora3l7bffZu/evczNzUnJOffddx8ZGRnY7XZqa2tRKBTExsYSERGxaGPp6+ujoqKC73//+1gslsuWYLjdbtLS0igqKsJsNqNSqdBoNAQEBCxwgS0VExMTvPnmmxgMBubn56XbZ2ZmsFgsGI1Gent72bp1K//+7/++5HJT77//Pvv27ZPc0QMDA/zhD39Ap9MtZ6heBr1eT29vL11dXVRWVlJfX4/BYGBmZkYqc4LzG7mDBw9KsnwXXncymQyNRoNGo0Gr1bJ9+3ZKS0vZuXOn18Zps9mwWCwEBwejVCqlay0hIQGtVktISAjPPPMM3d3dNDU18cYbb3DmzBmsVitOp5Onn3560U+OFRUV7N+/n3379mEwGC4pZXM4HPzud7/Dx8eHyMhI2tvb+eQnP7noJ6Er0dfXx7lz5/jJT36CzWbjvvvu4+GHHyY/P39JM85F9Zvnn3+etrY2ZmZmUCqV5Ofnk5SUhEKh4ODBg8D55MrExEQiIiIWbe3z6rbOx8fnmn5gMTO0sbGRU6dOcfr0aak0QKPREBkZib+/v9fdmR6Ph8nJSWpqaqiqqqKqqgqj0Sjd73K5GB4eltxHbrcblUpFbGwsSUlJbNmyBT8/P6+ePPR6PfX19ZSVlTE4OHjZmK3wv5lj7e3tyGQyWlpa0Gq1REREkJycDCDFLFNTU702tqvhdDoxmUzY7fZLYqEXurYCAgJ4//33efjhh5dMUgzOy8UFBQVJE2d0dJTKykp8fX1ZtWqVlFG41BJ3txui6/73v/89vb296PV62traGB4eZnZ2Fjgf+ggPDycqKgoAPz8/lErlJcIegORGHxoa4vTp05JU5LZt27ySPe3n50dMTAwPP/ww8/PzzM7OYjQaSUpKksIOJSUlxMXFERUVhclkoqGhge7ubo4ePcratWtJTU1d1Jj89PQ0fX199Pf3o1Kp0Ol0l5S3OBwOLBYLVquVI0eOoNVqyc7OJjU1laioqCWJS7rdbjo6Ojh27BgNDQ0MDAxwzz33sH79esnjs5Rzw2KxMD09zczMDIGBgfj6+uLj44MgCAwPD0vxZTiftSwKfURERKDT6QgPDyckJMRrdmPJhMfFgLmYDj44OMirr77KmTNn6OjoOD8YpZLQ0FCKi4sJCQnxekKHWF/0wx/+kJaWFkl6DZAkig4ePMj09DQulwu3241MJiMsLIzMzEzy8/O96r4UBIHm5mbKy8vZv3//Vcs1LBYLR44ckfRXY2JiSElJkYqZg4ODiYmJITExcUER72Lh8XikEhMxvqRUKvH390epVEodMZqbm/nxj3/Mfffdt6TGMSsrS6qZFWPLlZWV1NTUsHv3bnbs2MHOnTvR6XR/1QLkVquV/v5+fvjDHzI2NobD4ZCSTAICAhAEgYiICIqLi1m/fj0AkZGRqNVqhoaGLnk9UbjjzTffpKqqirq6Os6cOSNJkd1sLFyn06HT6cjNzcXhcGC1WhkfH5cSwETjGxcXR1paGmq1mm9961tSCGX16tXI5fJFNY5iPF6lUhEeHk5YWNiCQ4MgCFgsFrq7uzEajZw4cQK9Xk9RUREPPvggGzdulDp4LOYY5+fnOXz4MK+//jrd3d0kJyfz2GOPkZmZuaQnRpH5+XnkcvklwuwOh4OOjg7GxsYWhHDkcjlZWVkUFBSQlZVFTk4OWVlZklfhZu3HoguPw3lXiNlspqenh/fee4+GhgbOnDnD/Py8VJTt5+fHmjVr2LRpE0899RRhYWFejw09//zzHDhwgNOnT0t1hCI6nQ6NRoPFYiE2NhaFQoHVamVgYABBEIiPj+fIkSPExsZ67cLxeDx8/etf59ChQ5w5c+a6nisaJHExUCqVhIeH893vfpf169cvmnyXiMFg4PXXX+cnP/kJbrebhIQEPvrRj5Keno5SqeTHP/4xJ06cYGJiAh8fH3p7e6WTx1IgKr289957lJeXSwH+wcFB5HI5UVFRPPfcc+zatWtBgtM18ud61LxkPjudTmZnZ3nrrbfo6elhcnKSnJwcEhMTJddzZGQkoaGhkkERN16XWztkMhkej4fp6WmeeeYZTpw4wdTUFC+88AKbNm2ioKDA+x/qAgH0C/F4PNhsNvbv38/+/ft59dVXiYqK4itf+Qqf/exnvT4OkZGREal2WfzuLrzGROPY2tpKTU0NL7zwAmazGY/Hg4+PD3/7t3/L7t272bx586JtKE0mE62trezZs4fg4GBWrVrF9773PaKiom5ZSy3hf9XKLqeoJualXKiZ63Q6+c53vkNnZydDQ0M0NTWhUChYsWIFu3fv5tlnn73WWuulEx6/mP7+fhobG3n99dcZGBhgdHQUi8WC2+2WCmQfeughNm3aREZGBjqdblGSJkwmE8PDw9KXL7olRT0+X19fzGYzsbGxzM/P09XVxY9+9CPm5+cXRWZMJpNRVFREYGAgxcXFAHR3dzMyMkJfX9+Cx7pcLhwOhzR2cXcq4nQ6mZqa4sCBA6Snpy+6cQwKCuLOO+9Eo9GgUqmIi4sjNTWV4OBgKVZwtUV0sZHL5eh0OjZv3kx6ejoTExMYDAa++93vMj4+jtlsprq6ms2bNy/52G4nlEolAQEBbN68mVWrVjE/P09oaCiBgYHSidrPz0/KQr5WdDodxcXFTE9Pc/ToUY4ePSollXmbK3lJ5HI5Go2GoqIixsfHOXbsmNThoa+vTwpJeBudTodarZaytX18fC45BYoKTUFBQdhsNknWsrOzU4rnzs3NsXv37kVxsYrrh91uZ2ZmhsHBQT744APcbjdarZbIyEiysrIIDQ1dNKm4ixErCa41icvj8fDggw8yPT3NxMSEpOQzPj7O+++/T3JyMiUlJTfcImxJjOPQ0BC1tbW89957l9zn6+tLdHQ09913HyUlJYua1qxQKAgMDCQhIQF/f3+SkpLIz8/nkUceISwsDB8fHywWC1FRUYyNjUkX+YUJJ95EJpORm5tLbGysFL85d+4c3d3d6HQ66XHiTnN8fFxSpr8YsfarurqakZERUlJSFtWN6efnR15eHmFhYfj6+kq1oML/Stg5HA4EQZDuuxX1hD4+PqSlpZGWlobNZmN8fJyysjLq6+sZHR2ltbWVqakpnE7nX61rVaz9TUtL8+rrqlQqEhMTiYuLQxAEmpqa0Ov1UjeFpUIul5OQkEB6ejoZGRlUVFRgMBjo6upaNOMoJiVdDdHTo9VqUavVBAUFERAQgMlkoqurS3IJbtiwQVqHvIlSqcTX15fIyEjMZjOjo6McOXKEubk5tFotcXFxzM7OkpiYSGRkpNQw+nbK9JbL5dKhwuFwkJmZSUhICA0NDZw6dYoPP/wQPz+/BV6Q62FJjGNLSwvV1dWXvW/FihVs3LiRe+65Z9HjZPfeey+FhYX4+fmxdetWtFotMplswcItuo6WajFPSkoiKSlJ+v+mTZsueYzH46G7u5uKigpOnjzJr371q8u+lqj1WFVVJe3cFwuxhORikWmxNVR/fz82m42MjAw++9nPLqre5rWg0WiIjY3l29/+Nt/85jf51a9+RUNDAy0tLURGRi7aQvnXzIVxe6vVyvT0NJOTk4sqqnE5FAqF1Evx1KlTNDU1cejQIbZt23bLk7F8fHwkmbTS0lKUSiVvv/02TU1NGI1Gtm3bxtq1a4mMjPTqmhQWFsaqVav4whe+wPvvv093dzf19fXAH9uVvfTSSyQlJZGVlcUTTzzBunXrCAkJ8doYvIlaraagoICCggIMBgMVFRU888wzOBwO/P392bVr13X/1ktiHLdu3YqPjw+tra1SsouI0WiUVDcWm+LiYvLz85HL5Wi12qvugsbGxjh16hQOh2NBVtSt8MeLu9/du3dzxx13sGfPHl577TWam5vp7u5e8Fin00lraysJCQmLahyvRHl5OYcPH5b6sEVGRrJ+/fpbFse4GLGrhLhzDw0Nvcz/SJMAACAASURBVOWG+y8NMev7gw8+4OTJk8B5T0NQUNACj8hSIoqQKJVKpqenGRkZuSXjuBrZ2dl86UtfQhAEampq6Ovr40tf+hKbNm1i/fr1fPzjH/fq+2k0Gh5++GG2b9++oF5UbP3W0tJCbW0tZ8+e5bnnnuOuu+5i/fr1kqv3diU8PJw777zzphNybso4itliojzThXGKC4mLi6O4uJgHHnhAcvuNjo4CSHVKQ0NDREZGLqrk2LUKYY+OjtLd3c25c+cQBIGUlBSpu/liuBXm5uawWCz4+vpKafIXo9Fo8PHxISQkhIiICIaHh9FoNExNTUnyWSI2m82r0nvXgsfjWVCaMzc3R3JyMitWrCA6Ovq2cceIsWOFQoFOp0Or1S5pFu1fOm63G4vFQl1dHT09PZKIf35+PgkJCV4XBRC7hIyPjyMIglR6dfEpS6VSSZ6iC/s/3k74+/uTlpZGSUkJo6OjDAwM0NHRgUaj8b6oNkiJaRcnylksFpKTk4mKiiI4OJimpiaampqoq6tDEARSU1PJyclZtM4cN4vD4WBiYuKmcx1u+NOJCilDQ0O8++673HfffaSnp1/22B0SEkJISAirVq3i+eefp6ysTDKOc3NzGI1GTp8+zZYtWxa12P5aEASBs2fPcuLECU6ePIlarWbjxo184hOfWBTD7fF4GB4epqenh/j4eOLj46VJfDGiKzM0NJRHH32U6Oho+vr6qK+vl7J+FQoFPj4+S65rarfb2bt3L0ePHqW1tRWZTEZJSQmrV6/2atf1m0EQBGZnZyXN2rCwsOWTo5ex2WyYTCZ+//vfMzQ0hMPhQKlU8tBDD3m9s43H45EyyisrK3G73QQFBbF7927UavUC3VOxo4MgCCiVyiX3ZFyo5Xw1ZDIZmzdvpre3l8bGRkwmE/39/fT29i7BKM8TEBBAQEAAycnJbN26FaPRyIsvvsjrr7/O6OgoQUFBpKSkLOq8EbNSr1fgRBAEDAYD7777Ljab7ZKw2fVwQ8bR4/Hw1ltv8fbbb1NWVobNZiMhIYHIyMir+qQVCgVJSUkL0po1Gg1hYWHk5eXd8kVKrMv76U9/SkNDA06nk4CAAKKjo70qVgzndzczMzN88MEHUnnJQw89xObNm8nKyvqTCRLBwcFSYbb442s0GjZt2iQ1p10qRLHit956i4mJCRQKBcHBwezcuZMNGzYs2TiuhsfjYXZ2ls9//vO0tbXd6uH8RTI7O8v+/fs5ePAg77zzDg6HQxL1KCoq8qoCjMvl4je/+Q3l5eUcPHhQMj4ajYZf//rXklqOWAc8OjpKc3Mz8/PzOByOJVXjmpqa4vTp05SUlBAUFHTVE5dMJiMrK4snn3ySlStX8uyzz97SZtxi277PfOYzHD16lPHxcaamphaUVCwGb7zxBn5+fiQlJVFQUHDNBvL06dMcPnyY7373uwQEBJCRkUF+fv4NxZZvyDgKgkB/f78k7JuYmIhOp7tiyq+4axsYGODUqVO0trZK96lUKvz8/KTC4luFxWKhv7+fX//61zQ3NzMxMYFarWbHjh1SI1VvIirI7Nu3j6amJqlgXa1WY7PZJPe0j48Pfn5+qFQqZmdnpczZM2fOUFdXR29v7/9n782j27zO/P4PSIIkwAUgCBLcQIo7KZEUJVOyJFvWZi22ZdlK7Iwtp3acZFzPyXTadE4np01ip+mp2+m00zQzzkyaseU1riNHi23J2jeLFCVK4r5T3DeQBEiAxEYQeH9/6PdekxIlawFoJ8HnHJ5DccPVi/e9z73PfZ7vV9yoERERLFu2DIPB4NcG4rq6OuLj4+ed3EZGRqiqqmLv3r1MTEwwPT2NWq2mtLSUrKysgFYfOxwOHA4HNpsNj8fDwMAAfX19xMTEiCo7g8FAWFgYw8PDXL58mY6ODux2u1BSCcrI3RtyT6PsmVlZWUltbS0ulwuDwUBeXh6PPvqoX8/rvV4v3d3dVFRUcPnyZUJDQ/nmN78plLXsdjuDg4NMTEywd+9eocg1MjLCzMyMUPxZKEZGRnj77bepra0lJyeHwsJCsrKyiIiImHdeCQ0NJSUlRQgnyGpF3d3dpKWlLXg6MyQkZI6DTaADoyRJnDt3jtzcXAoLC2/rd2ZmZhgaGuLYsWOcPXuWqakp/tW/+lesXr36rouI7nrn2NfXh9VqRalUUlBQIG7M2chl/bLTxLlz5zh9+jTd3d3iZ9RqtXDl+Coqx3w+n1DPr6mpYd++fWL3k5SUxOOPP+73Mnf4QplEbpQHqK6uJjY2Vog8wxduJ1FRUQwMDAj5pN/+9re0tLQwNDQklP5VKhVLly71q8mwJElcunRJSG7JD6ZsDdTW1kZ5eTkHDhzA6XQSHh4ujITT0tL8mg2QJAm3243b7cblcjE6Osr4+DgDAwO4XC7q6+uprq4Wii75+fksWbIElUpFU1MTR48eFU4IKSkpPPDAAwE5y/ljY7YdlEKhYHp6WkgGyovKCxcu8Pbbb9PT04PVakWr1VJYWMiDDz7I888/j1ar9dsC0+v10t/fT319PZ2dneTk5AiT4djYWKHXfOnSJc6dO4fNZhNnjAqFAo1GE/A+4NlYrVZOnjxJY2MjxcXFrFu3TrSVqVQq0Sssp4EVCgVqtRq9Xo9Op2NoaAin04nJZCI5OfmegqMsfnInrinycyef6arV6oDP1VeuXCE2NhatVvulr+V0OpmYmODy5cucOXOG9vZ2jEYjTz755D1lJO/4Ks/MzDA5OUl5eTm9vb3iTC4hIWHOxfZ6vbhcLi5dusTp06epqqriyJEjc3Q4Q0NDWb16Ndu3b/9KAqPcOP/f/tt/49ixY7S2tjIzM4PRaKSsrIxnnnmGHTt2BETGaWZmBqvVeoMu6ZkzZzh79iz/+I//CFyT45Ld6mWBAOAGUQJZ4q6srMyvE74kSRw5ckSIEmRmZqJQKLDZbFy5coXf/OY3tLW1id7LFStWsHHjRl555RW/t8NYrVYuXrxIZWUln332mdBhHB0dBb64JgqFgj179hAVFUV2djYRERGYzWbhO7lt2zYef/xxHnvssa+8lP8PAbfbjdlsZnR0lJiYGC5fvkxPTw8AJ06c4OrVq3R2dor7Ua/X8x/+w39g586dpKenBzQjJAcZ2QFEVmvKyclhcnKS/v5+qqurRR+xWq0mMTFxQUW+DQYDf/7nf84nn3zC0aNH2bt3L8uWLUOj0ZCQkMD69espKSkRDfdqtZru7m5qa2upra3F5/ORmJgoUsR3i/w+Wq1WNBoNer3+S98bSZKw2+2Ul5fjdDpJTU3lkUceCWhNgyRJmEwmfD7fbS1ijh49yscff8zu3btJSEhg48aN/Pf//t9JTU29p4XEHf+mrKxgsVhwOBwoFArefPNNLl68iF6vF4HE6/Xidrupq6vDbDYzMTEhAoFarUan05Gdnc22bdvYsmXLXf8H5sNms9HV1cX+/fvFSnH58uXk5uYSFxcndkNtbW00NDRw4MABRkdHCQkJYdGiRfzwhz9k2bJlQpsxEERFRZGXlzdvda8sowTXRIzdbrdwIJjP8HjRokXs2LGD7du3k5yc7Pcb12Qy0drayokTJ0R2YLZGrsPhEOfJO3bs4IknnghIn6jD4aC3t5fa2lpaWlqIi4vDYDBQWloKICrvWltbhTlqZ2cnISEheDwefD4f+fn5FBUVkZeXFwyM8+D1ekWGwmw209PTQ39/P11dXVy9elW0QsjpfbPZLCqj8/PzWbZsGcuXL+cb3/iGEND2NwqFAq1Wi1qtZnp6moaGBv7yL/9SCFCbTCZGRkYYHx8XVYv5+fmsXLmSlStXCoHvhXr/DQYD3/nOd1ixYgVnz57lwIEDDA0NCSnD+vp6YmJiiI2NJSkpibi4OHp7e+no6GB8fBytVuuX6ygvyH/2s5/hdDqJjo6moKAAlUqFRqMhLy8PuLbgiIyMJD8/n+rqaqqqqnj//ffF8yNrTAea/v5+Kisruf/+++e8VxMTE3R2dnLp0iUuXLhAW1sbY2NjPPHEE2zcuJGSkhJxnHIv3PFvy9vxmJgYLBYLdrudlpYWLBaLkJmCL9JusjapTFxcHEajUTS+Llu2zO++jdPT00Iuyu12o9FoGBsbo6enR1ROynJNLS0t4usZGRnCOywnJyegsklyU3pGRgZwrZhhPm86WW3meuLj40VRTl5eHg899BArV64MiGBwfHw8PT091NfXi6/Nfk8jIiLQ6/WsXbuWFStWBCQNDdeKA+Li4sjIyBBnq7OdSZKTk0lOTiYpKQmHw4HX62VsbIyIiAji4uLIz8/n/vvvp6Sk5CuzB/q643a7OXfunGi36u7uZmBgQHyEhoYSGhqKQqFAkiShuarVaiktLWXFihXivDlQhISEoNPpyM/PZ3R0VPRK9/f3ExMTI9wwlEolOp2ORYsWkZeXx/3338/KlSsxGAwLmk6PjIwUlfxhYWHY7XaGhoYwmUxYrVZcLpeo3o+IiECr1WKxWLBaraSnpwuFn3slJCREuNDIGRen04lKpSImJoaRkRGUSqXIwPT19VFdXU19fT1ms5kHH3xQmEIEmtjYWEZHRzl37pyoofB6vQwPD9Pb20tbWxsXL16kqakJlUpFZmYmW7du5aGHHiItLc0v2b47Fh6XzxH/7b/9t5w7d25Occ2XvphCwcMPP8zDDz/Ms88+S0pKSkB2GKOjo1RXV/Pyyy8zNDQk8uU3GxPAtm3b2LhxI88//7y4iQOJLIr8D//wD6KI4fqFxK3Ytm0bDz74IDt27ECn06HRaAISzCVJ4v3332fv3r0cOHBgztfh2vVLS0ujtLSU119/nYSEhICmXOQeNYfDgVKpvEF93+fz0d/fz/Hjxzl//jwff/wxKSkp3H///Tz55JOsXbtWCAHcA3+oW84vvbkGBwdZs2YNIyMjwldUoVAIfVA57RceHo7P5+Phhx+mpKSEFStWkJOT449re9vU1dVRV1cnDJdlr8fLly+zZMkS0Y/33HPPLajo/ZchSRJjY2OcP3+e9vZ24Jq/bEtLC3V1dQCiAO65556jrKzsBiWte8FisdDU1ERNTQ2VlZWiJaajo4PY2FjMZrMYl7zwffzxx/nrv/5rv1ftz4ckSTz11FO0t7fjdrv53ve+R0JCApOTk3zwwQfU19djt9uFfNz3v/99Hn/88Xt5j+d9nu/KlcPn8/HRRx9x8OBBzpw5Q29v7y1fuaSkhNLSUv7sz/5MrKBiYmICFoDkwFNbW8vExISoFquvr2dsbAxAtEwsXryYRYsWkZ2dLUxwF+rhliQJq9WKyWSiv7+fS5cuzQmO+/btEwUO/+bf/Js5IgsPP/wwRqNRiLTLB/mBwGq1cubMGT755BPefvttoY8ZERHBrl27ePDBB1m/fr1o9l+IdJVcHAI3Ck/L1dEulwu73S4CaFRUFCqVyh/j+6MNjjabjX/8x3/k/PnzmEwmFAoFWVlZLF26lJUrVxIbG4tGoxErc1lYWxYmX8hUtZxVkdsyZOcGt9tNeHi42D0u5DN9u8jHTnJWyO124/F4cLvdAELFKTo6msjIyDsS5P4yfD6fuHbyAkiSJDweDyEhIXi9XtE3LWcKo6KihBXUQlBfX09VVRWff/65WPxER0ezdOlSFi1aRE5ODiUlJWRkZIiNwT28x/5z5ZAFs0NCQsjPzxfVljcjPT1dpMJkM8pAPkQhISGo1WoKCgqEXdbMzAx9fX3iYH7x4sWkpKSQmppKQkKCOMNYSOSzk/DwcLRaLTExMXOCY3R0NGazGafTyZYtW+asyrOzswO6wJhNbGwsS5YsQaFQEBcXh9frJSQkBKVSyZo1a8jJySElJWXBBaVvRlhYmDC+XWgdzz90IiIiWL9+PUajURiQGwwG0tPTycrKIjIyEpVK9bVQRwkPDyc8PPwr74++G0JDQ1Gr1V+Jb6LcDxoZGenXynZ/kpGRIepFdDodkiShVqvJy8sTRyfp6ek3FUzxBwvi5xgkyB8Zf7Q7xyBB/gSZ93leeB+hIEGCBAkS5GtOMDgGCRIkSJAg1xEMjkGCBAkSJMh1BINjkCBBggQJch3B4BgkSJAgQYJcRzA4BgkSJEiQINcRDI5BggQJEiTIdQSDY5AgQYIECXIdX73MRZCvNT6fD7fbjc1mw2Kx0NXVhc/nw+l00t3dzdjYmJCamk1YWBilpaUYjUYyMjJITU31u4KObEN16tQpYWSrUCjQ6/VER0cLM9nc3FwUCgV2u538/Hz0en3Q5HgeBgcHGRwcxGw2Y7FYUCgUJCcn097eTkxMDMnJyeJno6OjWb58+Vc42j9MhoaGaG5u5vPPP0etVhMTE4Ner5/zM0qlkkWLFpGenk5cXNxXNNIgAQmOk5OTN3WLnpiYEJNYaGgoGo1GeLEFgpmZGTwej9AwlO2gJicn57V/mo+wsDCUSiWxsbGoVCq/TPKyePb1CkXT09PCVFQOTG63m7i4OCH4vFC4XC7Gx8cZGRlheHh4jv6r1WrlypUr9PT0CD3I2SiVSh577DFKSkpYvnw5cXFxREVF+VVo3mq10tTUxJtvvsnVq1eZnp5GoVCQkZFBXFycuK/WrFmDQqFgfHwcm83G4sWLycjICAbIWTidTtrb27l06RK9vb309fWJhcX58+eF+4uMXq8nPj4elUolXB0WEtlXVtbQlRdD4eHhN+j7ztYdDoTRwe2MdWpqCofDQUNDAydOnOCtt95Co9EQHx8vXGVkIiMjWb58OWVlZZSVlS2IXrE81zgcDmFsPTMzM+dzuDYXytJzkZGRATUZkJHnSpfLhdPpFIbNs1EoFISEhKBSqcSi414JiHzcm2++idVqnfcN/fu//3v6+/sJDQ0lLS2Nl19+mT/7sz/zm+L89fT09NDe3k5DQ4MQJR4eHub999/HYrEAX4hYzzden89HamoqeXl5vPTSS6xfv94vCv+9vb0cPXoUu90+541ubGzE6XSSm5uL1WqltraWCxcu8Morr/Doo49SVFR0z699O3g8HhoaGvj1r3/N//t//4/JyUmAW7qGzHbqkJEteH73u99RUFDgV63T3t5eTp06xb//9//+Brf3m41PqVSyfft2HnvsMV588cW7nSz/qOTjJEni+PHj7N69m3379s2xSJNdOa4nPDycxMREHnroITZv3szzzz8fuFFfh+w5+cYbb3D69GkqKip45plnWLZsGUuXLsVgMMx5X+Pj44mIiBCaywsljg/XJvb+/n4+/PBDTp48SXt7uzAOvxWRkZFkZmZy+PBhEhMTA2K4Phur1cqFCxc4duwYZrMZl8tFZ2cnVquVqakpBgYGkCSJ1NRUVq9ezerVq4VFXSDx+Xz09fVx+PBhKisrOXHiBCaT6YZslWyjuG3bNjZt2sT3vve9O3kZ/wmP34zh4WGOHTvG//2//1c4w1/P6OgokiTh8/kwmUzU1NSQmprq9+AoSRK1tbV8+umnHD58WLhxyIr0k5OTN0z0N5v4zWYztbW1/I//8T9wOp2sXr2agoKCexpff38/7777LqOjo3N22Xa7nZmZGc6fP4/P58NmszE9Pc0HH3zA6dOnhR+l0WikrKyMp59++p7GcTOGhoaora3l4MGDOBwOIfB8fQroekZGRrDZbGJXPj09zcTEBJ999hkKhcKvwVGenH/xi18wMDDAzMyMMOOemprC6XQyNTWFx+PBarUyNDREY2Mj5eXlDA0NER0dzYYNG0hMTPTbmP4QUSgU5OXlUVZWxsDAAHV1dTidzjnZlvmcT0ZGRrhw4QI6nY7169eTlpa2IDszt9vN0aNHOXPmDPX19Xi9Xo4fP05VVRVRUVE37GbWrVuHXq8X7iGyp2cgmZ6e5tSpUxw9epTGxkauXr0qDOLhmptJXl4e6enpc7xFfT4fe/bsweFwMDY2xoEDB9ixY4fwffUXkiThdDrZv38/FRUVXL16FZPJhFarJSUlhZycHHJzc4mKiiI2NlaMcWhoiKqqKo4fP05iYmJAg6PJZKKtrY3XX38dj8fDzMwMGRkZFBYWEh0djU6nIzo6Wpg4nz17loqKCiRJ4qGHHiIzM/OeMpJ+DY4Oh4O2tjba29sZHx+fd3U2+0Fzu910dXXR0NDgz2EIOjs7qa+v58qVK8JIePaYZMPW2dZHYWFhQinf7XYLF/mJiQnsdjtVVVVoNBoyMzPvKaXgcDjo6upieHh4Tnp3vt0XwNWrV+np6SEsLAyFQkFubi4xMTF4PJ6AuHLL1yU0NBSdTkdycrLwlLvVqruhoYG2tjZhYyYHq/7+/psumO6WyMhIkpOTWbduHSMjI+I6ejweHA4HTqeTyclJ8fAMDAygUqno6uqipaWFo0ePClPrQBpb/yEQHx/P0qVLcTgcREVFMTExgcfjwefziYAnp9f6+/sZHx/H6/WK6yzv2hcCeWK3Wq1MTk6iUCgwmUyYzWZhxqxUKgkJCSEsLIzw8HBiY2NRKpVERUWRmpoa0ODodrsZGxvj1KlTnDx5ko6ODqampoBr92xSUhIlJSUUFRUJqzxAnOUfOnQIh8OB2+2mt7cXp9Pp1/FJksT4+LjIXsnj0+l0FBQUCAs/OT2p0+nIzMxkamqKmpoaTp8+jclkElZhgUKeC1UqFSkpKcJ9RXYwko9qnE4nAwMDfP7551gsFiwWy7x1EHeKX4Oj1+vFbrff9LxR9gqbTXt7OxEREXMeQn8gSRItLS3C7BiY9xxi9m5RtpHJyckRLvKhoaFMTEwwOTmJx+Ph1KlT+Hw+Vq9eTWJi4j2fP95uemd2+lWhUAinbJvNhk6n83uaKCEhgcWLF/PII48wNDTEmjVr2LZtG8XFxbd8rY8++ohPPvmEd999d87Xb3ZP3CuRkZHCLf1WyOcWlZWV/OpXv+Ljjz/m3XffFR6Fubm5ARnfHwrR0dFs2rSJtWvXUlNTw8jIyA1nyZIkYbFY2L17NxcuXACu3SdJSUlotdoFS1WGhYWRl5dHXFwcSqVS1DCoVCpx9ihPoBEREdTW1mK1WpmeniY9PZ0HH3wwoOMzm800NDTw9ttvMz4+Puc6GgwGli9fzquvvkpGRobIBMG1c9/h4WHCw8PFtZzvfO1e8Xq9NDU1cejQIT744AM2bdrEY489xq5duzAYDISHh887F3d1ddHZ2Ulra6vw8QwkspVgSUkJarV63k2AfE/Kx1FqtRqdTkdCQsI9x5OAVquGhISIwgitVktmZiYNDQ0iVWiz2XA4HJhMJk6dOiUKN/z12t///vcxGAxotVquXLmCQqEQZyU7d+68wcssLCwMjUbDsmXL8Pl89Pb2EhkZSXV1NefPn+fDDz+kq6uLyMhIPv30U5555pm7PvgNCwsjNjaWkZGRm/6M7PUopwbcbrcw8O3r66O6uprjx4/z5JNP+v1GValULF26lNdee42ZmRkiIiJuaRQsSRIDAwNcuXJFTJxwrTAnOjqaZ555hqVLl/p1jHdCWFiYSBHJRRvyv//Ud42zCQ8Pp7S0FJ/Pd8Ok7Ha7+fDDD+d8Ta/Xi0lsoYJjREQE69atQ6PR0N/fz9jYGFFRURiNRlGZHBISIibHn//855SXl9PS0sJ//a//lfvvvz+g41Or1cTFxeFwOObsYFQqFStXruSv/uqvKCgomFNcZ7fbOXPmDH/3d3/H4OAgLpcrYMV3JpOJ48eP89vf/pb//J//M5s3byYnJ4fo6Oh5TdO9Xi8Wi4Vf//rXnD9/ns7OTl577TXKysoCMj4Z2cQ9IiJi3nvL6/Wyf/9+jh49ypUrV9DpdLzwwgusWbOG+Pj4r1dwlM0o169fLxzYS0tL0Wq1xMbGotfrGRgYwGQy0d3dzb59+0RqZnBwkCVLlvhzOOh0OlauXElUVBRr164FvjDCLS0tveGQWzYBTU1NRZIkYmNjCQsLw+FwMDIyIlKsLpdr3krTOyElJYVvfvObXLlyZd5qT4CioiK0Wi0qlQq4tstub2/n7NmzeDwe+vv7OXHiBI8++qjfg6O8kLidB1Re6Hz44YdUVVVhMpnE9xISElizZg15eXnodDq/jvF2GR8fp7+/X5w3trS0EBoaisFgCLZ1zMP173lzczMTExOYzWaOHDnC4OAgcG1BlJKSQmJi4oJXgUZGRpKTk4PBYMBut4vd4uwzbbvdzuXLl+nu7gZg5cqVlJSUBNwAOzIyEoPBwGOPPUZFRQUmk0kUi6xfv56cnBzcbrcwModrhYNVVVU0NzfjdrtF60xBQYHfzZybmppQKBSsXLmSDRs2kJWVhUajmfdnJycnGR4e5tChQ1RXV+P1etmyZQtlZWVzWnsCxXxB0ePxMDo6Snt7O7///e/p7+8nLCyMXbt2sXbtWrKysvxyP/o1OEZHR7N06VIiIyOZnp4mPDycrVu3EhcXJwKRXAV19uxZPv30U9Fq4XA4bru14nYJCwujuLiY4uLiu/r9pKQkbDYbarVa3KD+SnGkpaXx/PPPk5WVddPguGnTJhITE8XkfeTIEY4cOcLZs2eRJAmz2UxFRcWc6sKFxuVyYbFY6Ozs5K233qKvrw+bzQZcu7FTU1PZsWMHRqNRBPmFQD7A93g8tLe3U1lZyf79+zl37hxer5fY2Fjy8vJISkoKBsebIBcynTt3jp6eHvr6+sQzKz8HGRkZCzJJzoder79pgZjb7WZoaIh9+/ZRV1eHXq9n27ZtZGRk+D3YXI98rrhr1y7RuqbVatm5cycFBQWEhobS3d3NwMAA4+PjANTX11NdXS0Wlnq9nsLCQkpLS2/IcN0LkiTR3d1NQkIC3/jGN1ixYsVNA4nb7aavr4+6ujrefvttpqamKCwsZNeuXRQXFwe8gnY+vF4vZrOZxsZGjh07xsmTJ0lJSWHZsmW8+OKLJCQk+G/HLUnSrT7uGJ/PJ3m9XvFxPb/97W+l7373u5Jer5dCQkIkrVYrPfjgg5LH47mblwso09PT0osvvigVEMAlQgAAIABJREFUFhZKSqVSUigUkkKhkAoKCqRf/OIXktVqvefXmH2trv+4nl/96lfSxo0bxTgWLVokvfDCC34Zx93g8Xikt956S3ruueekmJgYKSQkRIxNoVBIiYmJ0osvvig5nc4FHZfP55POnz8v/frXv5aeffZZyWg0SlFRUZJCoZBCQkKk9PR0afv27VJPT4/kcrnu5iW+7Ln5un7cEeXl5VJmZqYUExMjRURESEqlcs57DEiHDh2SzGbznf7pgDIzMyP97ne/k1588UVJqVRKpaWl0quvvirNzMws6Di8Xq907Ngx6ZVXXpEyMzOlb3zjG9KWLVuknJwcKSkpSYqOjpaUSqWkVCqlsLAwcU31er30ox/9SGpsbJx3HvDHuG42x8hMT09LBw4ckL71rW9JGRkZ0ubNm6UjR45IQ0NDARnTl+Hz+SSn0yl1dHRIzz//vFRSUiLpdDrpZz/7mVRRUXGvc8y8z4vfzxzn6xfs7e2lra2NvXv3Ul9fT39/v+ibKy0tZfPmzQETAbgTfD4fDoeDxsZGWlpaqKys5PTp05jNZlGNl5aWJirM/CEGcKvtf39/P1VVVRw7dgyAuro6Ojo6AIiKiiIzM5OtW7cuqDAAXOuJ6uzs5N133+XixYv09fXhdDpv2FXbbDZqamr4xS9+QWFhIbm5uWRmZgZsB1lVVcXp06fxer1cuXKFrq4uRkZGGB0dJSIiguzsbLZt28bSpUspKCggMTExIJW+fyzIDeDT09Nzzs5mV3nLfXBfVcp8NrJoxVtvvUV5eTlNTU3MzMxQUlIidmwLgTyPHDx4kM8++4za2lpGR0e5ePGiaCPz+XyiGng2SqWSV155hVWrVmE0GgOSrr7V33S5XDQ1NXHy5Ek+/fRTYmNjefzxx3n66acpKChAq9UuaArd5/PR2dlJc3Mzra2tnD59mtbWVvR6Pc899xw7d+7EaDQGpDgoYBFJkiQ8Hg99fX3U1tZy6dIl9u3bJ8psFQoFGo2GwsLCgB/s3gyv1ytSb+Pj41itVsbHx6moqKC6uprTp0+Lvky5rSEnJ4eioiKMRmPAA/rExAQNDQ3s27cPuBaUXC4XCoUCtVqNwWBgyZIlC7Kw8Hq9IlXV3d1NbW0t+/btY2ho6KZpXTktc/DgQXp7ezGZTNhsNkpKSoiMjPTrQzYwMEBVVRWffPIJMzMzdHR0iN5WuFbclJ6eztatW1m6dClGo9Fvr/3HSnR0NIsXL0apVM6p2J5Nb28vmZmZpKSkLPgCVw7cExMT4gyvq6uLgwcPinaymJgYsZiVU+3whaKKXPThz2Iil8vFyMgIhw8fpry8nN7eXqanp0U7x2zk15UXlvJZYE5OzoKl+71eL9PT01gsFnp6erh06RInT55kZGSE4uJi1q9fz0MPPbQgY5mNLFtZXl7OlStXaG5u5vz582RnZ1NUVMTmzZspLCwM2AI3YHez2+1mdHSUn//859TU1NDb24vNZhM3QWhoKKtWrWLt2rWsXLkyUMO4JXKjrclk4uOPP6aqqoqRkRE6OztvKLgJCQkhKiqK7du3s2nTpgWpvPR6vUxNTYmK1tnj0Wg0GAwG0tLSFmRFbLPZ6O3t5fXXX+f48eOiyOHLMJvNlJeXU15ejkajISsri7feeotFixb57eGXJIndu3dz9OhRPv/8c+DGg3ytVktxcTGbNm1a0LPPP2Ty8vL4xS9+wYEDB6ioqOD8+fOMjo7O+ZlDhw7h8/nIyspCr9cvWMUqXAtC/f39HD58mJ6eHhoaGrhw4YLISqnVahYvXkx+fj46nQ6LxSLGr1QqUalUaDQaVCqVX7MvQ0NDXLx4kXfeeeeWLUxhYWFigSif40qSRGdnJwkJCQumq2q32+nt7WX//v3s3r0bu92OTqfj5z//OWVlZQFTL7sVPp+PoaEhampq+Ju/+RscDgdhYWHk5uby2muvUVJSQkpKSkDHELDgODw8TFVVFUeOHJkj7QXXen2Kiop45ZVXyMrK8uuB863weDy43W6mpqY4efIktbW1VFdX093djc1mw+l04vF45m0gjY6O5rvf/S6bNm0iPz9/QcZ7K/r6+qipqeHYsWOsWbMGnU4XkJYESZL4p3/6JyorK7ly5QpDQ0M3NP+Gh4ejVqvJyMiYMzmOjo4yOTkpCnSmpqZob2/nL//yL3n11Vd54IEH/JYO0Wq1QrxhPvr7+/n444+JiYkhNjaWhIQEnn322Tk9ZUHmolKpWLRoES+++CI7duxgYGCA48ePC3Wrt99+W+jrnjx5kr/9279l0aJFAZ/UJUnCbrfz2muvcerUKfr6+piensbtds9pmNdoNDzxxBOcOnWK9957j+7ublasWMH4+DgOh4M1a9aQm5tLcnIy6enpZGRk+GX3K4sPhISEiP5tlUqF0WikoKCAZcuWAbBs2TKhq1pXV8fp06f5zW9+w09+8hO+853v8MwzzwSk/3ZmZgaTyURvby9nzpzhwoULYg58+OGHKS4upqysjMLCwls+U4HC5/PxzjvvcOrUKT7//HN0Oh3f/va3WbVqFcuXL8dgMCxIMVDAgqPH42Fqako0384mJSWFbdu2kZubS2xs7ILlsEdGRujq6qKiooKamhq6urro6uqakzq9GT6fj9HRUex2Ox6PZ0HeHLVajUajEatejUZDREQEVquVmZkZenp6OHToEJ2dnSxbtozi4uI5UlT+QJIkGhoaqK+vp729XSwclEolGo2G7OxsEhIShDD17PdyYGCA7u5uLl++LJSA7HY7DQ0NNDU1kZaWNkfM+m5RKBQUFxczPT2NXq8XIs/yfTc8PAxcm+wvX74MXDuzdTgcpKamotVq0Wq1IoUY5BpyO49erxcLCoVCgc/nY2RkBLPZTGVlpXguPvzwQwwGAwaDgQ0bNhAfHx+w83CPx8PVq1dpbm5mcnISpVJJXFwcmZmZZGVlERYWRnx8PKWlpSiVStRqNWq1WlQ7jo6OEh8fT0FBAQqFgtraWqampkhOTr5nOcGYmBjS09N58skn8Xq9hIaGolKpyM7OJiMjg5ycHADRiiLPO52dncC1he/AwABms9lvwVGWouzu7hbZsdbWVurq6mhraxPqQkqlEqVSKc6Z5SOwhUqZ2+12urq6OHHiBA0NDTidTrZv386GDRsoKipa0F1swEUAZAWL2W0aGRkZ7Ny5E61Wu2CH5AAdHR0cO3aM1157bc7X5cAopy3lVZ9CoRBtFk6nk+PHj7Nu3ToMBsOCnAfodDrS0tLIycmhpaWFzMxMtFqtkHsym83s2bOHmZkZnnrqKZ599lkSExOFxJy/mF1yrlQqhchvbm4uzzzzDPn5+UJyanZwHB4eprKykunpacbGxoTax/j4OHV1dSQnJ/slOMI1/cwVK1aICWB4eFik1yoqKkRTdWVlJcPDw0xMTLB//37KysrIzMwUTh0ajSa4k5yH8PBwdDodGzZsAK5NYkajkb/5m7+hpaUFm83G3/3d34nex3/5l3+htLSU+Ph4vy84pP/fWWd6eloIVOh0OvLy8li1ahXf/OY3iYiIIDIyktjYWHJycoTDxN69e5mamsJut2OxWEhOTiY2NpbPPvuMrq4uVqxYgV6vv6cFu5zF+fGPf4wkSSI4ZmRk3HSxoNfrRVGT3EIzMjLypYv220U+/z9w4AB1dXW0trbS3t4uvi/PdzabjY6ODtHXLasfxcTEiPPZQG5mLBYLZ8+e5ciRI3i9XrKzs3nuuedIT08nNjYWh8MhxirHl0AREFcOuLZL6+jo4B/+4R+orKykp6fn2h+UJBISEigqKuI3v/kNycnJC7Z1/4u/+As+/fRTBgYGxNdm///lm3DVqlWkpaWh1+vZvXu3KIJRKBT8+Mc/ZsuWLQGXoJLHNjMzw/T0NF6vV9wUsnpJb28vZ8+e5b333qOvrw+A//k//yfr1q3zi3OIPIbDhw9TU1MjmocfeeQRFi9eTGJiInFxcWIxcf1DI0kSJpOJqqoqvvOd74gAC/DNb36TrVu38v3vf98v45z9mvL1kd9bOShLksTQ0BCff/45Fy9epKmpidbWVqanp0lMTOS//Jf/wtKlS1m0aNGXPXR/qNHTrzpkXq+XwcFBamtrOXr0KAcPHmRsbAyn04lOp2Pjxo1345BwW0iSxIULF+jq6mJoaIhvfetb4l6cvTi8XiLS4/GI4rKOjg727t2LQqFg165dfPe732XNmjW89NJLFBYW3nNQuv688VZBZXR0lAMHDvDv/t2/w263k5mZycqVK3n77bf9kvqvrKzk5MmT/PKXvyQuLo7c3NwbdqUhISFiYdnf34/FYiEuLo6kpCTWrFnD2rVryc3NZfHixQELkH19fXzyySe8+uqrYjcrF+9FRESIIsT09HRycnLYtWsXarX6Xscz78UN/dnPfnarX7rlN2+FrFMq7w7y8vKEALTL5RI7H5fLRUREBPHx8Xf7UrdNX18fdrudtrY28bWQkBASEhIoKSnhwQcf5Nlnn2Xbtm2sWbOG++67T6QKZa3JwsJCUlJS7tmV43aQK2TDw8OFV538uSznptfrycjIEB6GV65cISIiAqVS6RclELkyNjU1lYKCApYvX05RUREpKSlzpNjme3gVCgWDg4OcOXOGzz//fI7YQUFBATk5Odx33333PMbrX1MO1LIItezHqVQqiYyMFOm30tJS0RReU1ODyWTCZDLhdDrJz8+/1YT0n/066IXjZ/78Y/KEpdFoSE1NZXR0lOnpaRwOh3BDCQ0NJTMzk7i4OL9miRQKBZGRkSQmJgptXZVKNSfrM9+HfC9ERESgVquJj48nPz+f7OxsLl26hNFoJCsri6SkpHsOSNe/9q0IDQ0VLkUWi4Xp6Wl8Ph87d+4kMjLynq+d9P8rfmVkZPDoo4/y0EMPUVZWxpIlS8TH4sWLWbx4McuWLWPlypVkZWWRmpqKWq2mp6eH+vp6Ojo6mJycJCkpibCwML9n/kJDQ4mNjRXHHLm5uRQWForNis/nw2w209fXR3NzMx0dHUiS9KU1B1/CvM9zwNKqshnmxo0bKSkpobu7m9DQUEZHRzGZTIyNjbFnzx5xfuev9NqtKCgoYHBwkJMnTwJf6G3m5+dz//33s3TpUjZs2EB0dLTQNC0oKMBisYgzieHhYYaGhvw2ppmZmbtOVcTExFBQUIDRaGTJkiXU1NTw4x//GIPBAFxLX99KD/V2kNNkKSkpd/V3pqamaGtru8G1QQ7wC40sLC+f+xQWFqLVajl69CjHjx/HYrEgSRLbt29f0JT/143ZO+9b3Zuy3GJSUhJNTU1iodTQ0EB/fz/19fVcuHCB5ORkNBqNX8+ubqWQ82WEhISg0+lYs2YNcO3/u2jRooD3vvp8vnmVwEJDQ4mOjiYpKYnW1lYmJycxmUxMTU0JjeV7ITExEY1GQ15e3pfK/cktMm1tbXR2dnL16lVxBtjV1cXExIQ42/W3FF90dDRLliwhMjJSxAm4lm41m83CD1OuH+nq6kKSJKEJHBMT47d7LOCnrGFhYSQlJZGUlMSqVasYHx/n/PnzdHd3MzExwdmzZ3E6nTz55JMBP+vR6/VixwCwaNEili9fzo4dOzAYDPPKSsnam/LYKisriYmJ4S/+4i/8Mqbh4WEhzH63REVFUVxcjMFg4M033+TgwYM0NTWRmprKqlWr7qp1QX6I5d2eUqm84/SO3Otqs9luSDHl5OQsyILoy8jNzcXlcvHss8/y3nvvMTU1NUcb9k8VWTRboVAQExPzpYu30NBQXnrpJbZv305tbS3f/va3sdvtVFdX85Of/ASDwfC17y91Op1otdqAGorb7XbMZvO83xsbG8PlcvndhQO+WIzeTmeArDFdUlJCSUkJMzMzfPvb3+bAgQOcPXuWAwcO4PP5eOaZZ9ixY4ffxxoSEjJv2lfG6XRSV1fHwYMHee+993jjjTfYs2cPP/rRj3jiiSf81uKx4LI0//E//kdqamo4evQov/vd7xgbGxPNnUuWLLmpAK4/yM7OJjExUYgOREZGCtPMm63MxsbG5thFOZ1ORkZGqK2tpbCw8J5WdD6fj3/5l38hLS2N++67j9LS0ntaIGg0Gn7605/yy1/+ksHBQfbs2UNxcfFtB0f5jHO2EMKJEyeAa9euoKCAqKgoHnnkkS+topMkiVOnTnH8+PE5KdXw8HCWLVvGihUr/NISMzIyQkVFhVC8uRullkWLFvHSSy9x7tw5JiYmaGxsZHJyUhQh/Cly4sQJ6urq6Ozs5LHHHqOoqOi23i+9Xk9RUREvvPAC+/btEz6eckXr1xGHw0F/fz8NDQ2kpaXd89/zer24XC6qq6sZGhrCZDLR09MjevdklavrmZycZGhoCI/HQ1RUFAkJCURFRX3l92BYWBg6nY4dO3aQlpbGzMwM5eXlLFq0iOLiYtGOslBERESwePFiDAYD9913H6dPn6ampoY333xTiLP4w8B8wYNjbm6u8G9sbGykt7eXsbExLl68iNFoDGhwlMu55bTjrXC5XJjNZk6cOEFTU9Mcs2S5SsofO92Ojg76+vqwWq2ireBuA65SqaS0tJTExER6e3tpbm6+I1Hy0dFRBgcHqaqq4vLlyzQ2NlJRUQFcq1gdGhqioKBgXqUPmZmZGdxutzhrvHDhgkiNyDZRGzZsIDMz8577W00mE62trXz++ec3VMreLh6PR5zvyGe8clXenyKSJImJ/ezZs/T29qLVaoWpdkJCgjjbm4/w8HCioqJQq9UoFAqRQnS73QtqiHy7tLW10dPTQ1NTE9HR0Xddhe7z+XC73bS3t2M2mxkbG6O6uprh4WFxRqZQKLBYLHOOZeTsyvW7RVm6LxC7yLtBqVSSlJSE0WjEYDBgNpuFAfxCExISQkxMDNHR0ahUKlwuF263mw8++ICamhq0Wu3XNzjOVwE6m/T0dFJSUhgZGeGjjz7i8uXLHDhwgIceeuie0i6zKxXlie5u/4bJZKKyspK/+qu/Ek3sgCgCWLx48V2PczYOh4OqqipOnjxJcXGxsNSZfYh/u0FY9s+UH/Du7u47mpDq6+s5fPgw/+t//a8bvtfT04PZbCYnJ0ecR10vfSVJkjiX/fTTT3n33XfnKOnI1WYvv/yyX4yiL1++zLlz5/jss8/44Q9/eMepaZ/Ph9Vq5erVqxw7dozx8XHi4+MpLCz8WqzYvwrkgofy8nJOnTqFJEl89tlnDA0NMTIywsaNG0lJSUGj0cy7gJAkCafTSX19/ZyJ099HJl82x9wOPp+P3/3ud5w8eZIrV67wk5/85K4dfKanpxkZGeE3v/kN1dXVtLa2ikWhPD61Wk14ePgckQSfz8fExMQNAdLpdGI2mwOmWyvPk3d6j1//7H+VKBQKDAYDq1evRqlU8s///M8cPnwYwC/dBAEJjh9++CEKhYKkpCTWrl0770MUEhLCfffdx7lz54RDu9VqvevXdLvdtLa28uqrr9Lf34/RaOSNN964I7UOm83GyZMn+eijj2hubqarq0uMSb4Znn32WbZu3XrX47ye0tJSRkdHuXDhAs899xyLFy8mOzubVatWER8fT05Ozm1L1TkcDvbv3y/892YXVdwOJ06c4J//+Z/n/V5JSQmrV69m69atWK1Wrly5gtFoZGJiAofDweTkJB0dHVRUVFBbW0tbWxsOh0P8vixg/NRTT/lFh1OSJC5fvszly5fFhCzvbm6FvJO22Wzs37+fEydO0NraytWrV8nKymLLli089thjf7I7R9nncsuWLQAcO3aMzs5O+vr6OHLkCL/61a+IjIwkPT2dl156SfQEut1urFYrLS0t1NfXc+zYMTweD+Hh4Wg0GpKSkvyihDU9PS3MvsfHx1GpVJSWlt5xtsVms7F792727NlDf38/mZmZPProo3edIuzp6eHdd99lz549omWpsLBQmGnHx8fzrW99i+zsbHEmNj09TUdHBz/4wQ/o7u6eo+4D1+a0s2fP8sgjj/i13c3hcLB3714OHTrEO++8c9vPosPhEJJu0dHRJCYm+mWHJiNn5+5FYGVsbAyLxeKX8fg1OE5MTFBTU8P+/ftRq9UsWbKElJQUoUA/G5/Px8mTJ+nt7QWu3Qj3kkKQb7Tu7m4GBwdRKBRMTEygVqvnrYocHh7GbreLG7KtrY2Ojg4uX75MTU0NIyMjIjDKzcRyVau/CkkUCgXLly9neHgYk8nE1atXaWlpYWRkhMHBQWF4mpWVRU5ODl6vV6Sp8vLyhAP7sWPHRBtCVVUVra2tTE1N3bGcnNxiM9+qcGRkhJqaGqampsSBvdFoZHx8HKfTydTUFGNjY6JPSt5tR0ZGkpCQwPr169m0aROlpaV+qSbzer1MTk6KKrbdu3djNBqJj48nLy9PFA9NT0/T2dkpCh0mJiaAaw/6iRMnhKBCTEwMmzdv5oEHHhBu8n+qhIWFUVZWxuTkJFVVVeI5cTqdTE9PExoaisVi4Z133iE+Ph6FQiEKr0ZGRhgeHp7TopWXl8eiRYvuqehMxmw209HRwfvvv4/D4SAuLo7+/n62bNly2z6NIyMjtLW1cfjwYSRJoqioiG3btmEwGO66gtrhcNDd3c3U1BTT09OEhYXhdrsxGAwkJSWh0WhwuVx0dHTQ2Ngo2jVMJhMWi2VOhkfuzZQzWDfze71bWlpaGBoauqXu62zk1G9FRQXnzp2jv7+fTZs2UVxc7FcxlMbGRhwOB2lpaXdk7ODz+cT1S09P98u5Mfg5OI6Pj3P69GmOHTtGfHy8kOeSc8Kz8Xq9HDx4kK6uLtF/dC8T0szMDP39/djtdlwuF5OTk/T09Ij+nuvTgI2NjYyNjYnJ8ujRo+IAXVbTkOWz5F4q2e7IXxdfoVBQUlKC2WxmfHxcaJFarVba2trmiCOvW7dO6EcCbNmyRUw6H330EU1NTfT29mKxWPB6vURFRZGUlHRHO6CYmBgSEhJwOBy43e45JefDw8MMDw9z4cIF4IsUqc1mw+VyiVWfTEREBDExMWJyfPrppykuLiYjI8MPVw6REvL5fIyPj7N7926SkpJIS0tj06ZNojHYbrdTXl4uKmZl5Q9Jkujq6hIO8tnZ2TzyyCPk5+d/Zea9XxdkOT6Hw0FOTg49PT1Cjk9eTE5OTvLRRx+JGgFZGhC+SHlqNBqMRiOrVq0iIyPDLzvH8fFxmpubefPNN/F6vSQmJjI6OkpeXh4pKSkic6BUKsX7HBoaKhR15Pe9pqaGtrY28vPzWb58OU899dRNU8W3g8/nw+l0irYsn8/H1NQU4eHhxMbGEhkZSVtbGyaTifb2dnHk4Xa7xT0pq/qEhoaK53xyctKvZ7WSJNHa2sr4+DhRUVFC3u5mc69csT46Osrx48e5ePEiLpeLbdu23VGx3+0gXx+z2SxUeb4sQMo2ZRaLBaVSSUFBgd8k9/waHGdmZsQkNDg4iNVq5ejRo7hcLvEGXx+kfD4fSqWSlJSUe+p7Cw0NJTExEZVKJdQvXn75ZWJiYlCpVDfkybu7u5mcnJxTiTqfokVJSQk7d+7kkUceoaSkxO/ptvT0dHbt2sWjjz7K//k//4f6+nq6u7tFb6DNZsNms/Hb3/5WjDEkJISTJ0+i1WoxGAzU1dWJB1/+P6akpPDCCy/c0cru5ZdfZuPGjfzTP/0TZ86cuWVLg9vtFrv+64mMjKS0tJT/9J/+E8XFxcTFxREdHe3Xa6dUKtm5cycajYbu7m7hrlJbWyvOHWRmFzaEhYWh1+tJT0/nhz/8IQ899BAZGRkYDAZUKtWfbDr1euLj41m3bh3vvPMOH3/8MefPnxc6qrOZfR5/PStWrGDLli384Ac/8Nt1lUUx5Pt8ZGSEPXv2UFVVRVFREcuXLwdgyZIlJCcn43K5SEhIYHh4mPPnzwvrqLCwMD755BMSExOJjo6+Z63kjIwMXnrpJfr7++ns7GRsbIyRkRF+//vfz5l3Zp/PzyYxMZGCggI2btxIbGws58+fp7m5mdTUVL/rODscDlEYZDKZRJHV9UiSRHd3Nw0NDfzyl7+ksbGRlJQUfvjDH/LEE0/4XULTaDQyODjI3/7t3zI1NUVJSQm5ubk3DcDyBuv3v/8958+fJy0tjZ07d7J69Wq/jMev8nFjY2OcP3+ef/2v/zVjY2NiZS9/wFzfstjYWAoKCigsLGT9+vVs2bLlrmXPZKX5119/nXPnzlFeXi6KKmY/mPLndrsdr9d7g4mrUqlk/fr1pKamYjAYePjhh0lPTycxMTFg7iFyC8XVq1dFaurSpUt89tln9Pb23mBZJe+0Q0NDiYiIYGpqSuzyIiIiSE5OZsWKFfz1X/81S5cuve1Fh9vtxm63i/RuV1cXtbW1AEKo+PodIlwrNNDr9ezYsUN458XHx7NkyRK0Wq3QY/U3ExMTorq2sbERm82G1Wrl0KFDQtpOPnPWaDSkpKSIlE1KSgoGg4H4+HiRer+DCfwPNed6R8+z3JIwNDQkfDzPnTuHz+djbGyMAwcOUFxcjNPppLu7mwceeEA8Jz6fj+3btwvLKH8xNTVFb28v3/ve92htbRVHHyqVipiYGJG6lUX6fT4fy5cvJyUlhYSEBAYHByksLBR6wBEREX6pTp6enhZn8RcuXODy5ct4PB6h4zsxMcHSpUvnTPRJSUkkJiaSkpKCXq8nMTFROIMMDQ1hsVhYvHgxycnJft2hVVZW8uGHH/LRRx+xePFiSkpKyMzMJDs7m/r6epEalo2Ge3t76e3t5ZFHHuH+++9n06ZNLFq0yO/PtMViYWBggIsXL3Lw4EEUCgUJCQksW7ZMaLzGxcWJneLAwAB79uzB4XAIO8GnnnqK9PT0O30/532e/bpzjIqKEo7vcv7f7XYzPj6O2+0WJeGy5FRWVhalpaUsXbqUBx544J6sbsLCwkhNTaWsrAy73S7OvmRdTZnr0wdhYWEYjUZRwh8ZGcn69evJzs4WwgWBdmrcChisAAAgAElEQVSQg7IsSTc5OYler2dycpLm5mba29uxWCwi3Qlf+EvGxcUJlYqQkBA0Go2wxcnKyrqjscuNwrIxcF9fn0gxtrW1iZX49ajVahISEti2bRv5+fkkJSUJubZAnt3JklE6nQ6j0YjNZmNiYgKn0ykCn1zpp9VqMRqNGI1GkpOTF8wr7w8ZufUmJydHOKhERUUJhxqr1UppaSkOh4OrV6+ybt06oYQDUFZWdlttU3dCdHQ0aWlpbNiwgYiICPr6+vB4POLMXV5IAsKpo6ioiJiYGLKyslCpVBQWFvqt2lwmPDychIQE1q5dS0xMDDqdDo/Hw9DQkJjMly1bNqcOQFYWSktLIzY2FpVKJb6fkpKCx+O57XPUOyEtLY3s7GwyMzPp7u5GoVBgNpuxWCxUVlZit9tFtfz4+DjT09Pk5+ezfv167rvvPrKzs/0+Jrgm2B4ZGYlSqeTEiRMMDw8zOjoqzpZjY2PR6XRirKOjo5jNZrKysliyZAnr1q0jPj7eb1mKgAiPv/XWW0xMTODz+RgYGODo0aMMDg6ybt06YQuzYsUKHn/8cfR6vV99CPv7+2lsbOSzzz5j9+7doifvZuXHarWan/70p0IuLiEhgc2bNwekfPpOGRsbo6WlhcrKSo4dO0ZTUxODg4PAtYenqKhoTuVsWFgYWVlZrFixwu+yTkHm8Cexc/w64/V6+fTTT8Uz8f77799Q7a7T6di6dSs///nPycrK+opG+vVEzlAdP36clpYWhoeHGR8fp7e3F5VKRWpqKhqNhtzcXPLz81m3bh16vX7BLN26urpobm7mypUrHDx4kKtXr4rWGPhiQf7nf/7nPPzww3dVsTyLeZ/ngARH+dxRThfKKUyVSoXP5yMsLEyo09zqMPhukF0s7HY7Vqv1SyuyQkJCRMUdfLFa/jqcPclFBC6XC7vdLix64FogjIiIuGFhIYtr/yn26C0gweD4NUBO/83MzDA5OXmDZqn8LAfCNusPHVkeUi60km0FZ2Zm5hzbyLKRarV6QecUWZxDNqeX3VRkZGMBjUYjjkXuIY4sXHAMEuSPnGBwDBLkj4d5n+evfnsUJEiQIEGCfM0IBscgQYIECRLkOoLBMUiQIEGCBLmOYHAMEiRIkCBBriMYHIMECRIkSJDrCAbHIEGCBAkS5DqCwTFIkCBBgnztkSSJ6enpG1TPAkVA/ByDBAnyx8dsd/rZXqEKhUK4UXwdxDOC3D6yA5EkSYSEhNyzO5I/ma3JDdfGOjExQXR0NOHh4ULYIVDjDQbHIEGCfCk9PT00NjZy8eJF6urq6OrqYmBgAEmSyM3NZcuWLaxbt04IzwcVab7+2O12/v7v/55Dhw4xPDxMXl4eP/3pTykoKECv13+lY+vt7aW6upoLFy4wOjoqFH1sNhuPPfYYRqMRnU6HUqkkNTU1IOMNWHCUo77VamV0dJSZmRkKCwsJCQlZ0JVJZ2cnTU1NlJeXz7GLmW8M4eHhJCcns3jxYqKjo1EoFBQUFBAZGblgK2KHw8Hg4KDQo72Z1Zf8uUKh4P7776e4uDhggsCzkX3rxsfHaWpqorm5GavVKrz8rkelUqHT6cjJyRGSd2vWrFmQFerMzAxWq1WkYXw+H3V1dcK9o6OjY87Ph4WFkZmZKUytv06r6K8am80mnqWxsTG8Xq9wp3c6ndTW1tLa2srSpUtZunQpmzdv9oup9WzGx8epqqqipqYGg8HAxo0bMRqNX/p7LS0twidwzZo1aLVav9tA3SlOp1P4Ofb399Pc3Cwk8IaHhwkJCUGn0/Gd73wnYNJtISEhJCQkkJyczNTUFI2NjZjN5nnNBRYCWe+1sbGRyspKrl69SldXF1NTU0RGRpKcnMzTTz+N3W6noqKC3t5eFAoFRqORrKwstmzZgk6nuxeN1Tn47e6dnQN2u93YbDYsFotwuJ+ZmSE8PJy4uDjUajVqtTrgE4/P56Ojo4PDhw/zxhtvzNF7nQ+1Wk1hYSGbN28mPj6e0NBQ0tLSCAsL89sF/zJsNhstLS288cYbNDU14XK5hDP4fCgUCr797W8zMzODVqslOjpaGL36G9ks2GQy0dPTw4kTJzh58iSDg4NYLJZ5f0ej0ZCens6aNWuEFqy86lOr1X69rpIkCXNWl8vF1NQUPT09wutSFquWHRzOnTsnFhryNVuxYgWbNm0iLy8PrVa7YO/71x15IpckCb1eP0fY3ufz4XK5OHbsGN3d3ZjNZtavX+/3NKvFYuH06dN88MEH5OTkYDQaiY+Pn3fxKr/fLpeLqqoqmpub6e7uRqfTLbihtXxW5nK58Hg8eDwezGYzHo8Hm81GbW0tJ06cYGRkhJmZGVpaWlAqlWRmZvL0008LWy1/ExoaSl5eHlarlYiICA4cOIDFYhFmDQvN2NgYTU1N7N27l5MnTzI1NYXP50OlUhEXF4dWq2Xnzp3s37+f+vp6Kioq8Hg8xMfHk5mZSU5Ojl/nFL8ER0mScLlcYoXe3NzMe++9x+uvvy6+D9cm8h/84Ads2rSJrVu3Bnz1ZrVauXr1Kg0NDaSkpIjdg8PhwGq13hAknU4nly9fpqamBoVCQXh4OOvXrycyMnLBJknZpbyurg6v1yusY+CL3LpseAzXru0HH3xAfX09R48e5cUXX6SwsFD42vmTqakpfvSjH3H27Fn6+/tRKBTCB/Fmxqder5f29nYaGxuBa7vzU6dOsWvXLlavXk1ZWZlfxzc2NkZ5eTlnzpyhoaGB5uZmnE7nnLML+XP5ekZFRZGcnExPTw/l5eXU19cTHR3NE088QU5Ojt/G94fMsmXLKC0tnfd709PTjI+P8/jjj2MymTh//jx2u52wsDC/BUdJkujv72dwcJDh4WGGh4fZv38/NpuNDRs2EBMTM+e1XC4XIyMjHDlyhP/9v/83XV1deL1e+vr6+MEPfsAzzzzjl3HdDpOTk9TW1nL69Gna29uFBZ3L5cLpdDI2NnbD4jc2NnbOuW4gCA8PZ+PGjWzYsIH6+npaW1tpamoiISFB2OctJLW1tRw9epT33nsPgMLCQlasWMGGDRsoKirCaDSi1Wp54YUXePrpp/8/9t48Ks7zyvP/1EoVFFBUAQUU+y4WiUULkqwFSVYkR3Ysd2zHSjLdSWdy3J2xk07bSc50Tsbd0zM56cmMT7sTtzNu220nseWMV8m2ZGtHKyAkNkGB2IuloKAoliqo/feHfu8bgeRFEoudfj/ncISot6iHqvd57vPc+7334nQ6CQQCXLhwgfr6el566SWeeOKJBeu7e1vGMRQK4XK5sFqt9Pb20traSm1trdglfHp6mqGhoRs6YoRCIQ4cOEBHRwdtbW08/vjji2ogdTode/bsoby8XOyD6Ha7sVqtXLx4kZmZmTnXj4+P895774nGJxAIUFtbi0ajWbRGx/OJjIwkNTWVjRs3cvHiRdFdOX+SXO8iDgQCYvfxpqYm/s//+T8L1g37egRjWFZWxrp168jMzGTdunWf2HPO5XIxNDTEL3/5S0ZHR/F4PFgsFlpaWkhMTFxQ4+hwOGhoaODpp59mdHSUyclJ3G63uAmSyWRERkYSGRlJUlIS3/3udwkPD0ej0RAeHs5vf/tbLl26RFdXF6+88golJSWScbyOj/P09Pf3c+zYMaampti5cyc7d+4kOjp6Qd2qMpmM4uJivvSlL+HxeHjnnXc4ePAgFy5c4JVXXuHrX/86cXFxyGQyzp8/T2dnJ1arlb6+Pvr7+/H5fCiVSr75zW+yatWqBRvXzXC73djtdl599VXa29sZHh5mfHxcPC3CNRd+amoqcXFxxMXFsXr1asbHxzlx4gQnT56koKCA7du3ExMTsyT9ZKOjo6msrOTMmTNi4+ClJj09nZycHGJjY9myZQubN29m69atGAwGIiMjRVshk8nQarUolUqx25OwCXc6nXi93gU5zNzS3SvEmxwOB5cuXaK7u5ve3l4sFgt1dXWicYQ/utOEHZKwQPX29oodnue3mFloVCqV2OBWYHZ2loGBAWJiYm4wjmNjY9jtdtHP7ff7aW1tJT8/f8l2UjExMaL/PBQKMTk5ecM1givQ6XTS09MDXHPHTk5OMjAwgNPpXJSxKZVKiouLgWunraysLNasWSPGnm6G2+3GZrPR0NBAU1MTHR0dDA8P43Q6mZqaWtDxzc7O4nA4aGlpwev1IpfLUalUREREoNPpiI6OFt2lZrNZ9F4EAgEmJiZQq9ViTHypW/R8ERH6tTY0NFBVVUVMTAwrV65ctAbhBoOB4uJiJicnqa6uxuFwYLPZaGtrIy4uTgyFnD17lu7ubkZHR5meniYmJob09HRSUlJYs2bNorpUJyYm6Orqorm5mQ8//JDe3l6mp6fFVnLx8fEkJSWJ92B8fLzYrLurqwuZTEZ6ejrl5eVUVFTcaSumz0woFMLj8WCz2W7oi7lUmEwmCgoKRHFXeXk5RUVFH3t9KBRicHCQ3t5ecU1fyA3ZLf2mmZkZuru7OXv2LD/60Y9uunDDNaMkiBqOHj3K4ODgsr3h89FoNGRlZd1UvOJyuVi3bh3/43/8DxoaGrDZbNTV1bFu3bolG5/ZbMZsNnPXXXexZs0aJicn58Qche9lMhlnz57l6aefnjN5FnMiabVaHnvssVt6Tnh4OJmZmTz77LO88sorvPDCC2K39oUeq+CCFlILVCoVcXFxpKamkpOTw5o1a/jGN74hGj4hHNDX18epU6c4dOgQDoeDqKgofvzjHy+La+mLgrBRPnjwIEePHuXQoUP8zd/8DeXl5SQlJS3a6xYVFZGcnExNTQ2XLl1iYGCA0dFRnn/++RuuFeZMSUkJmzZt4oEHHqCgoGBRT2IWi4U//OEPvPHGG1itVsxmM+np6WJMrLS0lE2bNmEymZDJZHi9XoaGhvj973/P6dOnOXbsGE888QR79uxhw4YNizbO+djtdl5//XViYmKWzEs2n6SkJJKSkti1a9enXjs7O4vdbucPf/gDBw8exGq18vOf/5zk5OTliTm+9tprnDx5kg8//HDOrl9QVpnNZtasWcOKFStISEhAq9Xy3nvv3RDbE3bznwclYDAYpLe3lxMnTtDQ0EBvby+1tbU4nU4UCgVf+cpXlm2RvOuuuz4x5uByuea4VwWWIkH2VgiFQlRVVXHq1Cnq6+sJhUIUFxd/bAzrdklOTuZLX/oSBw4cIBQKoVQqiY6OJi4uDq1WS1hYGDqdThTq/OM//iPh4eGMjo5SXV3N+Pg4sbGxrFixgrvuuovo6OgFHd+fCkIc/+WXX6a7u5uYmBgee+wxHnvsMQwGw6K/flRUFL/4xS8YHR2lt7eX48ePs3//fkZGRsTwCVzzXm3YsIGf/OQn5Ofno9frF9UwCuEmv99PZGQk3//+96msrCQ7O5vY2FixcbBGo2F2dhaLxUJTUxOvvvoqg4ODGI1GfvjDH/LXf/3XS5ZK4ff72b9/Px999BEOh4Pdu3dTUFCwJK99q7jdbtra2hgdHaWhoYFDhw7R3t7Oli1b+Mu//EtRrbpQ3JJxtNls9Pf3Mzo6ClxbjMxmM0lJSeTm5mI2m8nIyBANTmNjI06nU/Szw7VdXFlZGVu3bl1wqfdnwe/3Mz09zfDwMHa7neHhYS5evEhLSwtWq5Xx8XEmJiZEmXNhYeEcZd5SotVq5/y/t7eXoaEh0X0tiFwAUUC0atWqRRHj3C7BYBCPx8OhQ4dobm4mGAyyc+dOiouLF/yEERYWhsFgYOXKlcC1TZugkA0EArhcLpqamrh8+TKXL1+mpqaGsLAwZmdnmZycJD8/n9WrV3PXXXcRFRW1LPfn55lQKMTQ0BAnTpzg/PnzXL16lTVr1lBQUEBZWRlxcXFL8p7J5XJiY2PR6XRoNBrsdjsnTpzA7XYzOzuLSqWiuLiY4uJitm/fTl5enuhyXUxkMhmpqals27aNtLQ0iouLycvLEzdngLgxO3XqlLjm+Hw+du3aRWZmJvn5+cTHxy+JADAQCIiHgcuXLxMWFkZubu5nSo9ZLEKhED6fj7a2NrxeL8FgELvdztjYGA6Hg97eXpxOJ1arlfb2dioqKtiyZQsVFRXo9frlc6v6fD5kMhlRUVHI5XKKiorYsGEDpaWlrF27ltjYWDweD1VVVVy+fJmXXnpJfK5cLker1VJZWcnWrVvZunXrkiQK+/1+UT4N11zDAwMDXL58GYvFQmNjIydOnMDv94snroiICGJjY8nJySE/P39JdsM3w+fziYq16elpLl68SF1dHS0tLchkMgYHB4Frk1I4JW3fvn3ZE3jhj0ZxdnYWp9PJgQMHsNlsGAwGHnnkEUpKShZ80yGXy1Gr1RiNRlG56Pf7cblcTE5OMjw8TFVVFW+99RZnzpwB/igyMhqNbN68mfvuu4+dO3cu6Lj+FPD5fLhcLnHHfvHiRfR6PQ8++CAlJSVLmhohoFar0el0GI1GYmJisNlsyGQyIiIi2LRpE7t372bz5s34/X5mZmZQKBQolUoUCsWi5S1nZ2ffVMQluKH7+/tpaGjgX/7lX0TF95e//GUeffRRMjMzF2VMH4ff76ehoYG6ujo6OjpISUmhuLiY5OTkJR2HgNfrFXOojx07xvT0NIFAgJaWFtra2rDZbLhcLjE1S61Ws3v3bkpLS0lKShLXS4VCsSC2RfYpLrg5D7a3tzM0NITVakWtVlNQUEB+fr6Yz9Tf38/bb7/Niy++SG9vL+Pj48C1HX1KSgr/+T//Z77yla+QlJT0sdL/hSQQCFBTU8PZs2c5duyYmG80NjZGT0+PmLclFCxQKBRoNBq+973vsXbtWlauXEl6evqyCTOOHDnC1NQUbrebxx57TExJCAQCyOXyOeWVioqKWLNmDd/+9rcpLCwkJiZmWcYM1xbSvr4+3njjDVpaWujs7KSzs5OtW7dy77338sADD4jil4Vkenqa8fFxpqenMZvNAFRXV/PKK69gsViwWq1iCo8gBsvOziYvL4/Kykq+/e1vixu/T2H54wG3x23720+cOMH+/ft5++23KS0tpaKigkcffRSj0bhsuaB9fX1UVVXxwx/+kImJCXw+H2q1mgcffFDMpZXL5Zw/f57w8HBKSkooLS0lJydHvD+WAkEE+Nxzz1FbW0tDQwOTk5MUFhZSXl7OY489Rl5eHhEREUs2Jrim7t6xYwfd3d1kZ2dz4MABYmNjl634xbvvvsuRI0f4t3/7tzmhIWHNEw4AQvpYKBTC7Xbj8/nQarXs3r2btWvXiikgtxC6u+lFt3RyTEpKIiYmhoyMDORy+Q1ybY/Hw9DQEMPDw3MqphgMBtLT0ykuLiY6OnrJJpPT6eTChQu8+uqr2Gw28RQm5Bdd/wHI5XLCw8MpLy9n+/btrFixgpiYmCU3jDabDavVSnV1NYcPHxarZgi7KJlMJhYzEMa9fft2du7cyaZNm8jKyvrE1IqFwufz4XA4UKvV4o4Prm2g2tvbOXPmDO3t7chkMtLS0tizZw+rVq2isLBw0RR44+PjYixMUND29/dz9epVJiYmmJmZwev1YjAYSExMZPv27ZSWlorhAZ1OJ9UGvQ6fz4fT6eSZZ56hqakJq9XKD37wA4qKisjMzMRoNC5rmbihoSH6+vpEwwjXNsTnzp0jPDxcXJvGxsZQKBQ0NTVx7NgxcnJyyMvLY+vWraSkpCyqUTp58qToyq+pqWF6ehq9Xs+Xv/xlNm3axKpVq8jMzFyWij0KhYK8vDxGR0dxOp28//77bNiwgYSEhGXxlgWDQbHYhOCh1Ov1hIWFoVKpSExM5KGHHhJVqaFQiO7ubjH/taamBovFQmJiIqtWreKRRx4hMTHxtgVGt2QcdTrdJy68SqVSrNIiVDfw+/2igRkbGxMl1hqNBqPRSFhY2KJVoBHiiw6HA5fLhcfjEY/egqLxeoQ8OJ/Px9TUFKFQaNGqUwi+dbfbjcPhECvM9Pb20tnZydGjR8VkasEgCu5TYRHX6XQkJCRw9913s3Xr1gXNGbzZWD0eDxMTE3i9Xqanp+nr60Or1TIzMyOmjzQ0NNDc3MyZM2eYnZ0lMzOT7Oxsdu/eLe7mFwshbeTw4cOi8RUEEoA44fLz81m1ahX33XcfRUVFCy4B/1NhdnaW7u5u3n33XaampkhJSWHPnj2kp6cvm6LxetxuN9PT03i9XuDa+qNUKpmcnGR6elpULMtkMvx+P0NDQ3R3d9PT00NnZycKhYL169eTkpKyoOIrwY0/NjbGyZMnqamp4cqVK6KOISMjg127drF+/XoyMzOXTZioUqlYvXo1AwMDDA0NcezYMWQyGQUFBRQUFCy5IC0yMpLExESxzGhsbCyJiYmEh4cTFhZGamoqX/nKVzAYDHOMY29vL+3t7aK3cmJiguHhYdLS0li5ciXZ2dm39bfcklv10wgEArjdbv7hH/6B6upqGhsbb0jhKCkpISYmhsjISP78z/+clJQUTCYTqamptzz4zzKempoaTp06xZtvvklnZycTExOfaBw1Gg16vZ709HQqKir4yU9+QnR09IIbSEGKfOnSJV577TVef/31G8Zys89Gr9ezc+dOZDIZ69ev5/vf//6CjutmeL1ebDYb3d3dHDp0iL6+PgYHB7FYLEREROByucT0jPls2bKF//k//yerV69e9FNGW1sbZ8+e5Xvf+564YMIf1btKpZKNGzfy+OOPs3fv3jt5qf8QbtXOzk5eeOEFnnvuOXbs2MHjjz/Ohg0bPjen6/Pnz3P06FF+9rOfAddUrEaj8YZShfDHxPz333+fiYkJsaLXo48+yt13371gSe+hUIjq6mqOHj3K/v37GRgYwOPxEBcXx6OPPsq6desoLy//3Cih/X4///Zv/8ahQ4c4ePAgsbGxVFZW8q1vfYsdO3Ys6abR4XCIhg0gNjaWhISEz+QJ83q9tLe309jYyOXLlzlw4AAjIyPs2bOHffv2sWvXrk/ahNz0gQU1jnDtaGyz2RgYGODq1au88cYbjI6O4nA46OnpmZOHFhMTQ0xMDAkJCezatYv77ruP1NTUBZ18brebyclJuru7aWxsxG63zync7fV6ef7553E6neIJQzjJRkZG8sADD1BRUUFJScmCSpyF8lb/7b/9Ny5cuIDFYhH96DDXOF5/cjSZTHzve99j165dpKenL5r4JhAI0NPTw/vvv8+VK1fEHffU1BQejwe/38/s7CwKhUL0EOTk5IiqvMnJSQYHB9HpdBQWFvJP//RPZGVlYTQaF2W8cM3NZrFYePHFF+ekD7W2tjI8PMzIyAhRUVGUlZWxceNG/vZv/xadTnc7G5//EMbRZrNx9OhRnnzySQoKCti3bx9/8Rd/8bkpjuB2uxkaGuLMmTPIZDL0ej0mk4mEhARRByFsyATvR09PD01NTdTW1vLyyy8THx/P+vXr+dnPfkZBQcFte7AEPcM777zDBx98wJEjR/D5fGzbto2SkhIx/9Pv9+NwODh37tzHFkFRq9WsWLGCgoIC0tPTxdPvYjE2NkZrayvPPfccVVVVeL1eoqKi2Lt3L/fccw/l5eVLEqoJBAIEAoE56/BnLUEoFDEQvFg9PT1iLr7BYODnP/85xcXFH7f+3PTNVTz11FOf9Jqf+OBNX+X/d01GRUVhMBjQaDRkZGSQkZGB0WgkEAiIBXeFncL4+Dgulwu5XI7T6RQL4Qr9xe4EIacyOjqaqKgoMSk3MzOTjIwM0tLSUKlUFBYWkpWVxczMDDqdjlAohN1ux+Px4HQ6cTqd5OTkoFarF2RxEOKfp0+fFuO085P5BSN+/fcqlYqoqCjRtbVYbkpBTv3yyy/T1NREZ2cn/f39optSLpdjNBqJjY0lPT2dsrIyNm/ezKpVqygqKiItLY3Z2Vm8Xi/Dw8NER0ej0WjEe2IxCIVCqFQqwsPDyc7OJjc3l9zcXDG5ODIykuHhYdxuN1NTUxQXFxMTE0NYWNitvtTfL8b4l4CnbuViv9+P2+3mww8/FNXcWVlZaDSa23nPFhzhs9br9aSkpJCeni6WZBPme0REhFghKSoqSvRahYeH09nZydjYGAD5+flkZ2fftnF0OBzU1NTw1ltvUVdXR19fH8nJyZSVlYkb/u7ubpqbm6mtreXChQtip5Du7m5Ra9De3k53dzfDw8PYbDaCwSDR0dGfWIXqTgkPDyciIkLc6LpcLjo6OvB4PGg0GjQazaJ49uYjl8tFpalKpUKhUHzmTYEQctJqteh0OvR6PX19fdjtdtrb21Gr1WRnZ2MymW729JvO5wU3jgJhYWHExMRQUlJCRUUFFRUVFBQUiLkrY2NjolLU5XJx9epVOjs7aWtrY3h4mOTkZLRa7YLcFIJc32QykZKSQmpqqlhWLj09nS996Uvs2bOHiooK+vr6xBSD/v5+bDYbTU1NXLlyhcrKSmJiYm7IP7wdFAoFWq0Wu92OzWajt7dXlJoLcvPrvxdulJmZGZqamsR46EIn0gu43W4uXbrEL3/5S8bGxvB4POJ4hFSXVatWUVxczLZt23jkkUe4//77qaysZNOmTaxevRqn04nL5aK7u5umpibCw8NJT0//uBv0jhHyHIuLi1m5cqX4JRjt5ORk6uvrGR4eZnR0FKPRSE5ODtHR0be6M/8PYRzh2u796NGjDAwM0N7eTmJiopg6sdTt5z5ufAaDQay/+Wmue2EdSE1Nxel00tXVhdvtFgsG3M7cFtINnn32Wd58800GBwdRq9Vs2LCB9PR0fD4fJ06c4J133uH48eOcPXuWoaEhZDKZ6KGZnZ1leHiY9vZ2rFYrjY2NVFdX43K5KCgoECvqLBbh4eFi7nEgEKC+vp7u7m4xdWLHjh0L/pqCalxoWHF9k4U7QaFQEB4eTmxsLAMDA5w7d46amhp27NjBihUrbvaUm87nJXMoa7VaioqKyM3NnZNKce7cOS5evEh7ezuDg4N0dnZy8uRJZDIZu3fvprKyctcuCFkAACAASURBVKmGiNls5umnn+bll19GoVCI1f8F94eQZOzz+RYmj0Ym4+tf/zqrVq3igQceuGmZuOu/P3XqFHV1dTQ2NvLuu++iVqv58z//8zsex80YGxsjLCyMr371qzidThISEkhPT8dgMJCZmUlycjKZmZnibk9wfwg3t9Fo5Mc//jEbN27kH//xH6murqampgaDwUBhYeGSx62Sk5PFupZPP/00b731Fr/85S8JDw9n27ZtiyZm+iIjnBjef/99Tpw4wRtvvMEvfvELTpw4wfr16/nmN78pFm5fiA3jUhIVFcX3v/99UVn9u9/9jm9961vi33MrvPfeexw5coR33nlH7IXo8Xg4fvw4bW1tmEwmcnJy2LdvHykpKeTk5JCRkSGmMwkq9Otbrh0/fpzDhw/z5ptvkpqaytTUFFu2bFmMt2IO5eXlGI1GioqK+Ju/+RucTid9fX14vd4Fde8GAgFeeOEFurq6mJiYYOXKldx7770LVoAgFAoxOjr6sX1mPwtLKtETTktxcXFiweeYmBjy8/N57bXXcDgcTE5O4vP5OH/+PPn5+UtqHIWC05s2bSI7O5vKykreeOMNWltbGRsb4ze/+Q3btm2jtLSUu+66a0FeU61Wk5GR8ZnUf6mpqRQVFfG3f/u3eDwempubeeaZZ0R580K4ugKBAENDQ/zhD39gcHCQvLw8ioqKMBgMomtUUCR/UhxCEDep1WrRJdfX10dtbS1er3fJCipfPx6hmXVERISYlL0Qrvs/ZYR2ZKWlpWKIRNAP/OpXv0KpVGI2mykqKiI9PZ2YmJglz9e7HWQymRgeEcI8wgnmVmlpaaGlpQWPx0NpaalY5DwqKork5GSMRqM4f6Kjo4mJiSE6OvqmG0QhdqZUKsWwxFJuPhQKBSaTiTVr1rBt2zYsFgtdXV20t7eTmZm5YO7dYDDIwYMHGRgYAK6d6Ldt27Ygv1uI/54+fZrOzk6USuVt5eMuy6oQFhYmLuSRkZHodDree++9OTeLUMptOSgqKqKoqIhAICAWV6+urubdd9/F4/EQDAYXzDgCojDp08jOzp5TVaanp4ff/e53bNy4cc57ersEAgGmpqaor6/ngw8+IBgM8q1vfYtdu3bd9oInKJhDoZAYXxFO3rcaux0fH0ehUIj1KW8FYVc+fwEU3NYSn0xKSooYrz916hRNTU1cvHgRn89HUlISLpdLTPdISEjAaDQuu8v1kwgEAjgcDjH3Vbgvbsc4CoUlMjMz2bJlCyUlJRQWFoqt0T6rmCUYDIoxepvNhsPhICkpCZPJtKQlIXU6Henp6axbt47e3l7RzWsymRbUODY2NmKz2QgLC8NsNjM8PIzZbL6jAjFCetzIyAjV1dUMDAyg0WjIzs6+5d+77FvmM2fO8MEHH/Daa6+JibwymUw8vS0nCoWCv/qrvyIvL4+cnBx+9atfUV9fv2gxs8+K4JufmJigoaGBhoYGdDrdHVfFGR4epqGhge985ztMT09TWlpKamrqHRkPr9eLw+EgGAyKfTFvJ1YVCAR48cUXiY2NJSsr65Y3Jx6PB4fDwZtvvklbW5v48+npadxu9y39rv+oyOVyUeTk9/uZmJigr6+Py5cvc/jwYV555RWSkpIoKiri7//+79FoNJ+btI/5uN1uDhw4gMViYWpqShSk3M54hYbBq1evJjIy8rabPDudTiwWC//0T/9EQ0MD09PT/O///b/Zvn37klb0gWufdXZ2Nnq9nqamJp5//nmKi4sXrOSjXC4nLy8Pn8/H6Ogop06dIj4+noGBAfbt23fbv7e7u5u6ujp+//vfi5WR8vPz+eEPf0hubu4t/a5lMY5CT8gPP/yQjz76iAsXLswpTg7MaW65nKjVatatW0dkZCTPPvssbreb/v5+zp07R3l5+bKo9uZ34FioLhxdXV1UV1czOTnJww8/LPZUu10FX2NjI/X19TgcDhITE9mzZw8PPPDAbS2agUCA/fv34/P5iI+P55577mHv3r2kpaV96nOvXr3KpUuX+PDDDzl37hzDw8OoVCrMZrNYbkri1hBKeeXk5JCYmMiaNWu4cOEChw4doqqqisnJyUUr7rEQuFwuXnvtNWw2G8nJyXzta18jISHhtsa7Zs0a4NqadSsKy+vp6enhzJkzvPjii1y5cgWDwSC22lqOajVyuZzCwkKMRqOYfjK/u9KdoFQq+e///b/z6quvcvDgQfr7+zl8+DBWqxWv10tlZeWcU6pQcByulQ28vvtKT08PVqsVm83GzMwM09PTjIyMkJyczJo1a9i0adNtddlZNOMo5KuEQiFmZmbweDximbGRkRE6Ojr46KOPuHz5MlarVXyeRqPBZDKJ1eyXG5lMhsFgIC0tjZiYGGZnZxkdHeXSpUusWLECtVq9ZO6j0dFR+vv7xf+HhYWJ8vSF2EgI1YRCoRClpaWsXr36tk6jXq9XnOz19fV4PB7y8vIoLy+nrKzstk6iQsxyYmICq9WKUqkkPj4el8tFVlbWDZuUYDDI7OysWIpPqLHb3d1NKBQiKiqKrVu3kpaW9rmo9vJFRCaTicXlhQXUbrczOjo6p5D/QhMIBBgcHGR6ehq1Wn3T3qwfx9TUFL29vdTX19PW1kYgEMBkMlFRUUFERMRtnfhu12MjuFFHRkY4c+YMp0+f5vLly6ISXCjltlwb8OnpabGimJBlsFDIZDJKSkro6OhgaGgIl8uFw+HgypUrfPTRR7jd7jnGUQizyWQysbCCgNCtaHh4WEzjyMrKYvXq1ZSWllJaWkpsbOwtr9OLYhyDwaCYS+b3++nt7WVkZERUqba0tHD69GnGx8dvqG9qMpm4++67uffee5el0v98hJOZXC4nPz+f5uZmbDYbJ06cYM+ePURERNzyblP4nfMXj4+TMgs3ZV1dHUeOHBGvi46OFou/L9TuUhCurFy58hO7cN8M4e9xOp28+uqrvP322/T19SGXy8Vk4jsdp9frxev1cvjwYYaHh9myZQtPPPEEJpNJbGAsiBr6+/v57W9/y8mTJ8Vu4XBtU5GUlMR//a//dcndVV90hPdX2HwI3W3q6urYv38/gFh7ebE2jR6Phw8//JD29nbi4+N54oknPtPzAoEA3d3dPP/88+zfv5/x8XGSk5PJyMigtLR0SY2QcI/a7XYOHTrEc889R3d3N4FAgPvvv5/du3eLWoLlwO/3c+rUKQYGBkTx0kJ/nhqNhi1bthAbG8vExASNjY2Mjo7y+uuv8//+3/+bc62wBn7SfaVUKklNTaW8vJyvfe1rVFZW3tGhYUGNo9/vZ2pqir/7u7/DYrGIxb7dbjcej0cUswgLnLCYqtVqMjMzeeKJJ1izZg1ms3nBS7Z5PB5RXPNZTqRCq6OmpibOnDlDdXU1DoeDQCCASqUiOjoalUp1WzvNf/7nf6aqqora2lrxg9ZqtXz9618nMzNzTvDdYrFQVVVFY2Oj+D4KC9T69ev5v//3/y5YgfTExERycnLESiJWq/UzS6sDgQDHjh2jo6MDi8XC73//e6Kjo9m1axd//dd/TWFh4R1V2ZDL5VRWVlJbW0t3dzdwTSUo1J79u7/7O2ZnZ+no6ODcuXNiVZ8rV66IpcIUCgWZmZls376dyspK0tLSJKXqxzA6Oip2O4iKisLhcNDX10d1dTV9fX2MjIxgt9tpamrC5/MRGRnJ1q1b2bhxIxs2bBA3K4uBy+XiN7/5Dffddx9lZWWfer3H46Gzs5Pjx4/zwgsvMDAwwPT0NLm5uTzxxBPcddddJCUlLYkwy+fzMT09zXvvvSc2WO/q6iIhIYF77rmHRx55hPXr1xMZGblshnFycpLe3l5+9atfMTAwQFRUFA8++OCiVONKSkrCaDSSlZWF1Wqlra2NQ4cO3dQAKhQKYmNj2bx588e6SHNycjAajQsSlltw4yjsAK5evSoW7xZUgvOP5QaDgaysLLKysli7di3r168nNTX1VlqNfCoTExPY7Xaam5tpbW1FJpOxYcMG8XGhGLVarRYVbPDH8me1tbVcvXqV3t5eUbhhNBopKSkhPDz8tozj5OQkdrtd7OcG1zYIR44cwWg0otVqxbyn4eFhOjs757iehXFrNJoFdT0nJCSwYsUK4uPjOXHiBLOzszzwwAPExsbO+Ts9Hg9TU1N0dXUxPT2N3W6nr6+P5uZmcYHZtGkTK1eupLi4WCxifCeLj0wmEyvsK5VKAoGAqOw7ffo0v/71r8WuMJ2dnaLab3JyUlTDCalBK1euJCcnRzKMn4DFYqG7u5uRkRH0ej2jo6NiUXyn08nU1BQul4uwsDDy8/PZsGGDOJfT0tIW1dAEAgFGR0fp6OjAZDJRXl5OZGTknHtUKObf29tLT08PHR0d1NXV0dPTg1qtJjc3l+985zusX7+e5OTkBRlvMBj82PUgEAjQ3t7OwMAAXV1dfPDBB7S3t4un13vuuYeysjJKSkrEVlvLwcDAABaLhXPnzmGz2cRUu+3bty+KYlZI70tOTiYqKor4+PiPLTEpJPdnZ2d/bGqL0MxiId6/BV0dhNwxYfL4fL45HRE0Go2oCBPapWzdupUNGzawbdu2RVG3CXUD3377bU6dOgWA3W4XX0cul2M2mwkPDxdvYLlcztjYGBaLhcuXL4s3vUqlwmg0kpmZydq1a2/bOCqVSrGIgGAEvV4v586d+9giAMK/wg2i1WoX/GaNi4sjLy+P/Px8qqqqGBoaEpW61xc9mJqaYmhoiJMnTzI8PCwKXpRKJaWlpRQWFrJt2za2bNlCfHz8guyAhdZX8fHxolGGaxuNuro6rl69KjZYFlJF5HI5UVFRmEwmiouLufvuu3nooYfQ6XSSYfwUOjo6qKqqEts/OZ1OsS6xMH/DwsIoKyujsrKSRx555LbiOrdLKBSipaUFhUJBeXk5iYmJcz5ToYfouXPnuHTpEoODgwwPDxMREUFqaiplZWX8l//yXxZsvEIz6OvrgQaDQbHR+szMDOfOnaOhoYHLly9TX1+PWq0mLi6OTZs28bWvfe220g0WCsFN3tzczKlTp/jggw8IBAJkZ2eL3oDFMtgymQytVotWq8VkMt1yOGexWNAVIjw8nNzcXH76059y7Ngxjh49Sm9vL6FQiJiYGO655x5iY2MxGo2kpqayZ88edDrdohbWnZqawmq10trayuTkJFNTUzzzzDPiBy3E2IR4lVDjFf4YX4mNjSUlJYWdO3eya9cucnJyiI+Pv+0xZ2dn09HRAXDDaXq+EnX+v/Hx8fzwhz/k4YcfXvB4mVwuJzExkd/+9rc8+OCDnDx5kvPnz9/Q/FTwBszOzhIKhdDpdCQmJvLyyy+Tnp6OXq9f8G7rCoWCxx9/nPj4eLRaLQcPHpzzuND9Rag/m5OTQ05ODjt37mTv3r0YjUaxGLXEpyP0+Tt79iytra3o9XoKCwtZu3YtBoOBpKQkdu7cSVxcnNh2bqkICwtjw4YNnDlzhsbGRt5++200Gs2ce3RmZkZMoo+KikKn05GXl8dPf/pTVq1aRXp6+oKuOd3d3bz++utiPDspKYmxsTEuX75MW1ub2A8TrsXa9u7dy+7du1m9erVYaWo580Ltdjtvv/02zzzzjKgYvf/++3nkkUfYsmXLf8h5s+BdOeDa0dxmszE0NCQmgAs3jVC0ODw8nMTExEUJ9F6P4FZtbGykubkZq9VKb28vFy5cEBv0CjemULlfJpMRGxtLTk4OK1euFAuUFxUViS1U7kSiPjAwwMWLF3nxxReRyWS0tbXdtCtHMBgkPT1drLqhUCgwGAx89atfJSUlZdFSXbxeLydPnqS5uZmamho8Hg8dHR1ifqDZbCYuLg6z2SxueLRaraj4W8zWVN3d3VgsFg4fPkx/f7/4GQJEREQQExPDypUrxVNmfHw8ZrN5oVMKPr/Z7Z/MZ57PDodDLNrgcrlQqVTodDoMBoNYhMFkMi2YC+tW8Hq91NTU0NLSQlNTEwcOHGBsbEzsFr927VrRTRoKhdiyZQupqakkJSWJLv7w8PAFXXd6eno4cOAAr732GoFAAI1GI+ocBEWtXq8nISGBjIwMSkpKSExMxGAwLGpR8c+Kx+NhYGCAjo4Occ02m82kpKQQFxf3p+5puemNsCh/sdlsJikpaU7HemDRDeHNEKrzGwwGzGYz/f39Ykmhm9XdEwrgxsbGUlhYyJo1a0hJSSExMXHBkv/NZjM+n4+7774buVxOUlIScXFxN62nmp2dzdq1a8nNzRUbHOfk5CzIOD4OtVrN5s2bycjIIDo6GrfbTWJioihZT0tLIzExkYyMDO6//34MBsNN+2MuBsnJyWKh8L6+vjmfYWRkJEajkbKyMuLi4j4Xi84XFaGY92Lfa7eDWq1m7dq1mM1mkpOTGRsbw2az4ff7USqVbN68WaxbCteS9FNTUxe1eIdWqxXL5wlaC5VKhclkwmAwsHHjRpKTkzGbzWRmZpKYmPi5qiAUFhZGZmYmmZmZyz2Uzw2LcnKUkPgT5/Ozqt0a0nyWkLiRm87n/3iOZAkJCQkJiU9BMo4SEhISEhLzkIyjhISEhITEPD5NkPNFja1ISEjciDSfJSQ+I9LJUUJCQkJCYh6ScZSQkJCQkJiHZBwlJCQkJCTmIRlHCQkJCQmJeUjGUUJCQkJCYh6ScZSQkJCQkJiHZBwlJCQkJCTmIRlHCQkJCQmJeUjGUUJCQkJCYh6ScZSQkJCQkJiHZBwlJCQkJCTmIRlHCQkJCQmJeUjGUUJCQkJCYh6ScZSQkJCQkJiHZBwlJCQkJCTmIRlHCQkJCQmJeUjGUUJCQkJCYh6ScZSQkJCQkJiHZBwlJCQkJCTmIRlHCQkJCQmJeUjGUUJCQkJCYh6ScZSQkJCQkJiHZBwlJCQkJCTmIRlHCQkJCQmJeUjGUUJCQkJCYh6ScZSQkJCQkJiHZBwlJCQkJCTmIRlHCQkJCQmJeUjGUUJCQkJCYh6ScZSQkJCQkJiHZBwlJCQkJCTmIRlHCQkJCQmJeUjGUUJCQkJCYh6ScZSQkJCQkJiHZBwlJCQkJCTmIRlHCQkJCQmJeUjGUUJCQkJCYh6ScZSQkJCQkJiH8lMeDy3JKCQkvljIlnsAt4k0nyUkbuSm81k6OUpISEhISMxDMo4SEhISEhLzkIyjhISEhITEPD4t5ighISEhIbHsdHZ28qMf/Qi73U5GRgbbtm3jkUceQa1WL8rrLYpxnJ2dZWBggO7ubsbHx8Wfh0IhZDIZWq2WuLg4ysvLUSpvPoSuri6ioqKIjY1djCGK4/H5fAwODjI9Pc309DR9fX0AxMbGkpOTg9lsRi5f3gN2MBikpaUFnU6HTqdb1PfkTnG73TgcDs6dO0dycjIJCQlkZmYu97BERkdHuXr1Kv39/eL9KGA0GsnMzCQ9PX35BvgnSCgUYmRkBJlMRlhYGNHR0cs9pGUhFArh8XiYmpqitbUVrVaLQqHA4XAwOzuLTqcjJSUFnU6H3W7H6XSSlpaGx+NBrVaTmJiISqVa7j9j2ZiZmaGtrY3Ozk58Ph+bNm3C5/OhVCoXZY1ecOMYCASw2+0cOnSIl19+mbq6OkKhuSK59PR0Nm/ezLPPPntT4xgKhTh58iT5+fmLZgiCwSAej4fJyUmOHDlCb28vV69e5Q9/+AMAFRUVfO9732Pv3r2Eh4fPWUSXGo/Hw/79+8nIyCAvL4+77rprWcYRCoXmfJYymUz8WTAYJBQKMTg4SG1tLfv27eP+++9n9+7dfPe7312W8c4nEAhgsVh4+umneeutt8Sfy2QyZDIZ69ev5zvf+Q5/8Rd/sXyD/BNBuCeCwSA+n4/a2lrUajVGo5Hi4mJUKtWyzqnlwO/3Mzo6SltbG7/4xS9ITExEq9VSW1uL3W4nMzOTBx54gOzsbE6fPk1DQwP79u3DbrdjMBj48pe/jMFgWNLN+vz5Lcx/uVyOQqFY0s9QpVIRGxtLb28vRqORoqIiZmdnUSgUqFQqQqGQ+N5cP67bHeOCGseBgQEOHjzIkSNHaG9vp6OjA0AccDAYRC6Xk5eXx7e//W3CwsJu+ntkMhn79u1DoVAs5PDmcPjwYc6fP09VVRWNjY34/X78fr/4eFNTEz/96U85ffo0Dz30ENu3b1+0sXwSnZ2dnDlzhhdeeIGdO3cSFha2LMZxdHSUgYEBzp49SzAYJDIykoKCApqammhsbOTChQsMDQ3h9Xrxer0ANDc3k5GRseRjnU8wGMTlcuFwOBgZGcHj8SCXy8X7EUChUBATE4NWq13m0X6x8fv9uFwuLl68yJUrV7BYLFy4cAGr1UogECAsLIy1a9fy5JNPLtsmb7loaGjgrbfe4je/+Q1ut1tc33w+H6FQCLvdTn19PQqFAp/Ph8/n4/z584RCIUwmE7W1tTz11FNL6jmqr6+nsbGRqqoqzp07h8PhQC6X82d/9mfce++9bNu2bclOsxEREaxdu5bW1lZUKhU6nY6JiQlqamq4evUqnZ2dFBUVERcXR2RkJAAmkwmz2UxMTMwtv94dG8dAIMDg4CAul4uOjg5qampoamrCbrfj8XjEnYZSqSQqKopdu3axZcsWcnNzP9H4aTSaOx3aTXG73XR1dfH222/T3NxMV1cXExMT4uPCLiMmJoaSkhLKy8sxmUyLMpbPgsfjwel0MjU1hcViIT4+nm984xtLPo7GxkYOHjxIY2MjoVAIjUZDQkICg4OD2Gw2+vr6mJ6eFneZMpkMg8FwWzflQtPQ0EBzczPV1dUMDQ3R3t4O/PGz1ul0JCYmcu+991JQULCcQ/1C4vV6mZqa4vLly9hsNoaHh6mtrWV4eJjR0VGsViuTk5OEQiHCwsLw+XzLPeQlRfBSvffee5w9exan0yk+dr0nJhAI4PV6iYyMpLCwUFwjZTIZRqOR1atXL9q6eP1YR0dH6enpwWKxUF9fj8Viobu7m97eXmZmZpDJZFRVVREZGUlERAQbN25ckhOkSqXCZDKh1Wrp6OjgueeeQy6XY7PZsNvtOBwOWltbiYiIEOOQer0es9nMX/7lX2I0Gm/p/btj4+jz+bBYLAwODtLR0UFDQwN9fX14PB7xDdNoNERGRpKUlMTDDz9MaWkpiYmJd/rSt4XL5aK5uZkjR44wODhIKBQiNjYWtVo9x8Wbn5/Pjh072Lp1KwkJCcsyVvijcQwEAgwNDdHT07Ms47BYLLz55pv09/cD1wyLSqUSDaFcLkej0aBQKJDL5URERLBixQpSU1OXZbxwbbFxuVycP3+eo0ePcvDgwRuukcvlREZGsmLFCr70pS8t2335RUOIn83MzOB0OrFarRw8eJDOzk6sViuNjY3itUqlksjISPEeMZvNi3pCDwaD4ve36oIUjNVCLvbBYJCZmRmOHj1Kc3PznMcUCgXh4eGEh4cD1+5Zs9lMZWUl27ZtE71rOp2OjIwM8bqFJBgMiid+l8vF1atXOX/+PMeOHePq1asMDQ0RCASAP74vzc3NxMbGYjKZ2LBhw5IYR7VaTUpKCpGRkVitVn73u9+JcVvh9R0OB36/H4/HIz7HZDKxZ88edDrd0hpHl8vFSy+9xOnTp7HZbMC1D1iI4wBs3bqVDRs2sG3bNlauXIlOp7vTl71tpqamqKurY2pqCplMRkxMDE8//TSrV68mOTlZvE7wYy+3GKevr48jR47g9/spKipaNleUEDsSCIVCeL1eTCYT0dHRREdHU1JSgsFgwGw289BDDxEREbGsAoKRkRFeeuklXnjhBQYHB296jVKpJCUlhb179xIXF7doyrc/Naanpzl//jzvv/8+9fX11NXVMTMzc0NcWqPRYDQaeeihh0hISMBgMLBhwwZSUlIWZVyhUIiJiQm8Xi9yuZy4uLjP/Fyv14vP5yMQCBAVFbWgY/J6vYyNjTE1NTXnMb1ez1e/+lX27t2LSqWiu7ubTZs2ER8fv2TCJafTSUdHB//+7//O2bNnGRoaYmxs7AatyHxcLhcjIyNLMka45s178MEHefXVV/H7/YSHh/Poo49SWloqhm+8Xi9DQ0NUV1eLzwsLCyMmJuaW16I7Mo5utxu73Y7dbsftduP3+0WRhoDwfTAYxOFwMDY2BrBsBlJw7yqVStRqNTqdjuLiYkwm05xdxfXGfakRdpr/+q//yunTp7ly5QqBQIDW1lYAMjIy2LRp07K5LO+66y5WrlxJRUUFOp0OtVpNWFgY8fHxqNVqNBoNMTExSx6wv56mpiYuXLjAK6+8wsjIiLjznU9lZSWVlZVs3779Y2PgEnNpaWnh0qVL/PrXv8ZmszExMcHMzAzBYBCDwYDJZGLt2rWsXr1adINlZmai0WhQq9XExMQsuHswFApx5coVzpw5w4kTJ/B6vej1eh544AE2bdqEXq+fc73f78dqtTIwMIDD4RDjfRMTE3g8HsxmM9/85jcpLS1d0HHCtdPMww8/THFxMZmZmeTk5JCQkIBcLicnJweDwbDomzS/38/k5CRvvvkm586do6OjA6vVyvj4+Jxw2MdhNBrJysqiuLh4yea44K3wer0YjUbKysrYtm0bcXFx4ok6GAwSERExJy4rl8sxGo23/J7ekXH0+XzMzs4yOzs7x5UxH4fDQWdnJ4FAAI/HQ1JSEsnJycuSJqHVasnNzcVsNmOz2URDdL04Y7kJBAK43W6qqqq4fPmyGKOw2+0AfPTRR8C1dBOZTEZiYqIoKAoLCyMhIWFR3Vb5+fls3bqVbdu2oVQqRVfq50HMEgwGsVqtotiqra3tpp+rUqnEaDSyYcMG1q1bh9lsXobRfvHweDyitqCmpgaVSkVYWBiJiYmYzWbMZjMpKSlUVFSwdu1a4uPjUSqVaDSaRVlEQ6EQgUCAjo4Oqqur+fDDDzl//jwRERGYzWZaW1tJSkrCYDCI8TTBC2KxWOjv7xeNY3t7O9PT0/j9fsxmM7t3777j8blcLux2O7W1tbjdbqKiokhOTmbHiNw3wgAAIABJREFUjh2UlJSQlpYmikcADAbDHb/mp+HxeLBarVgsFj766CMuXLjAwMDADdfp9XrRSEZFRaHX68W0iZSUFNasWUNOTs6SGUe/34/D4WB6ehqFQkF8fDxms/mGjZZarV6Qk/8dGUfhdCXEnGQyGQqF4gb/dG1tLbW1tYRCIVauXMmKFSuoqKjgu9/97qJNmo8jLi6Ohx9+mCtXrnD8+HEuXbrE+++/z969e9Hr9Z8LeXkgEGB8fFycvHDtvXS73fT29vLss8/y7rvvijG+b3zjG0xPT+N0OklKSmLfvn1kZ2cv2vgKCwtZt27dkkzkW8Xj8fDqq6/y+uuv09DQACDGRa9Hq9Wyc+dOvvrVr5Kfn78cQ/3CEQwGGR4epqamhvPnzxMMBtHr9aSlpVFaWsp3v/tdkpOTb8uFdbsEAgGmpqb49a9/zZkzZ2hoaMBkMlFWVkZWVhYDAwO88847yOVyvF4vH3zwgaio7u7uFuX/KpWKzMxM9Ho9Go1GjGXdKd3d3Zw4cYLHH38cgHXr1vHggw/y8MMPL1vIYXh4mLfeeouXXnqJ9vb2m54SVSoVK1euxOPxoFAoKCsrY/PmzeKGPDc3l+jo6EWJgX4cMzMztLa2MjQ0tCSexzsyjkLS6s6dO0lOTqa/v5+Ojg6Gh4fFk6QQgxDcrW1tbXR1dXH06FGeeeYZ/uzP/oxdu3ZRUFCwJO4EgZ07d6LValGpVLzwwgucPn2a8vJynnzySQwGw8cWJ1hsvF4vfX19vPjiizidTtFNaTAYmJycxO124/F4sNls4qbkV7/6FWVlZVRUVLBr165birPcDkNDQ/T29i5a3OhO8Hg8vPPOO1it1hvSNa5nOd3mX0RcLhdDQ0M89dRT1NTUYLVaAfjKV77C1q1b2bFjhxiuWMwUrPl0dnby85//nA8//JDx8XFCoRCjo6McPnxYnMPC5yycMlUqFVqtlry8PFasWEFOTg5r165l1apV4mZdLpff4Iq9FUKhEFNTU7zzzjuip0dQcBcWFi6bl8rv9/O//tf/4uzZs+Lm4Ho0Gg2rVq1i165d7Nu3D7lcTigUQq/Xz9kwLIceQxDXTU9PYzAYiIqKWtQ5fEcWQFAlbt68mby8PGw2m2jZA4EAoVCI4eFhenp6GB0dBa4tXkKViLGxMU6dOsXk5CSlpaXs2bNnydxbmZmZBINBdDodL730EoODg8zMzJCfn8/u3btFd9BSMzo6Snt7O1VVVbjdbgwGA7m5udx9991i2sT1UnCh4lBFRQUVFRWkpqYuintTo9Gg1+sZGRmhr6+P7u7uOeIg4bP2eDxz8kU1Gg3R0dFEREQsiTEKhUJMTk6KYxBec/5EDgaD2O12WlpaUKvVn6sqPp83nE4nFouF6upq6urqsNlsBAIBEhISKCsrE3PLlhq/38/ExIQYizeZTDd1pwn3X1RUFJGRkej1evFnZrMZk8lEVlYWZrN5wea8x+Ph8OHD1NbW0t3dLd6HPp+PiYkJRkdH0ev1SxrnFtKsmpqa6O/vF/ORr2fTpk2sX7+e7du3k5aWJo57uSvzBINBpqamaGxsxGQysWLFCkpKShZ1I3bHd0JYWBibN28GrilB29raRAGE3++nsbGRo0ePAn8s1+b1evH7/YRCIWpra2lsbOTy5cvk5+eLidiLvZAmJSVhMpkoLi6mpaWFEydOcOXKFV566SWysrIICwvDYDAs+emir6+P+vp6zp8/D0BWVhYVFRX86Ec/or29ne7uboaHh+dIziMjI0V39WIRFRVFUlIS7e3tdHV10dzcjMvlmjPpm5ubRXGGgF6vJycnh+zs7CU9UXwaPp+Pvr4+Tp8+LcaYJEHOXEKhEH6/n87OTk6ePMlbb71Fe3u7WAQiNzeXkpKSZSu3J6SR2Gw2EhISSElJuWnRibS0NOLj40lLSxPTDxY7JDA7O8trr71GXV3dHKX0xMQE7e3tJCUlkZ2dTXx8/JLOi2AwyMDAwJyyntdTWVnJ5s2bWbNmDUqlcsnXPyGtxOPxiOEQpVIpesvq6+spKiqioqKC9evXL+oBZkF/c2RkJGVlZcAfVar33nsvP/nJT0Q36/79+6mtreXixYvU19cTCoWYnZ3l0qVL/OAHP2Dr1q08+eSTmEymRb9pFAoFkZGRPPzww9hsNvr7+6murubHP/4x99xzDz/4wQ8W/eg+n/379/POO++I/xfc0qFQiMLCQgoKCm4aI1hsF0dubi733HMPp0+fprW1lfHxcUZHRzEajczMzDA8PMzp06dxuVxzUj6MRiOFhYW89tprn6sYpcfj4cqVK1y9epWzZ88yNjbGf/pP/4mIiIjlHtrnBofDwfnz53nyySexWq2icA2ubXoefPDBO3I93ikXL17k5MmTWK1Wfvazn7Fu3Try8vJuuO56bcRSudMDgQADAwO43e45P798+TJNTU08++yz/NVf/RX33XcfJSUliz4eQDQ0mzZtQqlU0tbWdsM1zz//PC0tLQwPD7Nx40aio6OXbNM4MzPD0NAQZ86c4d///d9xOp0oFAp27NjBwMAAfX199Pf389hjj1FRUbHop1nFU0899UmPf+KDN+N6gY7wpVQqUalUqFQq9Ho96enpZGdn09nZicfjYXZ2Frj25mg0GgoLC0lKSloSt6ZMJiMiIgKtVoter6e9vZ2pqSnCw8PJz8/HZDItiW9dKBV14MABLBaL6PIIhUJMT0+Tk5ODQqEQ0yauf38FMdRio1Ao+OCDD/B4PLjdbkZGRujq6qKzs5Oenh7GxsaYnZ3F7/cTCAQIBAKiojknJ0dM8VhMhPqpdrtd3B3fbEG8Ph9Pr9eTl5fH6tWrP+tC8PcLPOyl4qlbuXhoaIgDBw5w5swZpqam5ijSA4EANptN9Pp0dHTg8/mQy+WEh4cvyZyZnZ1ldHSUDz74AKPRKIYYwsLCUKvVqNVqUUktzJGl2ujOzMzwu9/9DofDISakCwjzwuFw0NvbKzYTWAojJJPJ8Pv9OJ1Ourq6bqhW5PP5GBsbo62tjYsXL+LxeNBqtUuyse3p6eHChQv867/+K21tbYyNjeFwOBgYGKCzs5Ph4WHkcjn3338/6enp6PX6hbrPbjqfF9w4fhoxMTHEx8eTkJBAXV0dLpeLmZkZ/H4/s7OzKJVKEhISyM3NJSwsbNFPj4Jx1Ol0aLVaLly4wMjICFqtlrS0NFasWLEk/nav18u5c+c4e/Ys/f39YiEFn8/H1NQU8fHxwLUTYnR09JLnECqVSpRKJcePHxfTd0ZHRxkdHWVsbIzJyUkAUeygVqvFYsDT09PiZ77YtVaFJPDZ2VlkMhmBQEDc/Fz/pVarRfdvTEwMhYWFVFRUSMbxOux2OydPnqS1tRW/3y+KbYLBIF6vl4GBAXp7e+nr68Nut4spEn6/n2AwiEqlWtT7VIgbHzx4UBxTIBAQ3a1Op5Pp6WlxHEspIPH5fNTU1BAeHk5sbCzx8fHExcURExNDZGQkMpkMu93O4OAg4eHhYgGKxW5yIHRGcbvdTExMiGubIFby+Xw4nU56e3vp6upCq9USHR1NUlLSootwrFYr9fX1/Pa3v2VqakpcZ8bGxnC73Xi9XjQaDStXrkShUIhV2ATB5x3Yis+HcYRrC214eLhYEMDv92Oz2USl2fHjx1m/fj2RkZFLViVCuGktFotYC9Jut/PlL38ZjUaz6BNLSPK3WCyMj4+L7hhhsldVVdHS0kJfXx/FxcVEREQsqWBIyFUT8pyEAPn14hudTkdqaiqZmZliNRSVSoXdbqenp4fs7GwqKioWfZwlJSWiCnpoaIjc3NwbvhITE2ltbRXLBwpFDSTj+EeE07/FYhFLwGm1WtEAwrVN3fj4OJ2dnZw4cYLjx49z/PhxHA4Hqamp6PX6RdvgymQyHP8fe+8dHXd15v+/RjMajTQjjcqoj5rVu2RLtmTcTYcAJg49wEJISNmEbArZzX4Tkk3OhmxIzoFkAyQE0mAxJTHFxr1bVrHlomb1XmdGXdNnfn/497mRZGMcoxmJZF7ncMCeQXP1mc/nPvc+93neb5OJ/fv309bWJtqy3nrrLV577TXefPNN6urqSE5ORqPReLXtQKVSceedd/Lwww/zuc99jgcffJCbb76ZTZs2iQyFyWSio6ODo0eP0tfXh81mo7i42OMbgvDwcMrKyrjvvvvQ6/VYLBYmJyfnFPrBhe/WYDDQ0dFBVFSUEHTwFJJryf79+7HZbCKzI1XrazQajEYju3btYseOHezbtw8/Pz+cTidKpfLjpPgv+TzLPkIJ4fIyCR8Tg8FAbW0tx48f50c/+pHoj5R69z796U9z6623enIIc7BarbS3t/PUU09x5swZhoaGeOyxx7jttts8LtvmdrvFJNPZ2UlNTQ0nTpygs7NTeEwGBgai0WiIjo7miSeeYNWqVeTl5Xl0XPPHaDQamZqawmg0UldXx8zMDE6nEz8/P0JCQkhOTha7XKnQ6bnnniM6Oponn3ySJ5544qo/X+r9bGxspKqqivLycjIyMsjJyRHanbORpKRmj7+trY19+/ZRXV2N0Whkenqa2NhYrr32Wr72ta/Naci+DJ/UHpCPfJ6l3ZiUGrXZbAwPD4v0m3QuNDY2htlsprKykra2Npqbm5mZmRHv02q1fPnLX2b9+vWsXbvWI7+My+VibGyMs2fPUlVVhcViET2LjY2NdHZ20tXVRXh4OHl5edx4443ceeedi1J4NXtXLQm1v/POOxw4cIADBw4gl8tZtWoVX/nKV9i0aZNXWtqkLMvQ0BCNjY38+te/Fq0SEkqlkuDgYPLz8/nv//5vCgoKPBYg7XY7BoOB06dP88EHH2C321Gr1ZSXlxMXF4efnx91dXVs376djo4OBgcHhTxhbGwsZWVlbN26leTk5L93IXTJ53lxmvn+f6R0Q0RExEWvSZOwN5FK+tPT0+np6aGlpYXKykpWrFjh8c+WeqD8/f2JiooiLCyM2NhY0b7h5+dHY2MjXV1d1NXV0dTUhF6v92pwlMlk6HQ6dDodMTExhISECKmp2SbWUjl9Y2OjOG+Rdp1XgzSZ7Nq1i4aGBlpaWqivr2d8fJzz58/T3d3Npk2b0Gq1cyYVpVJJUlKS+LMkYTgzM0NfX5+Qo5q9+/1npr+/n66uLqqqqli1ahXJycnExMTMOSe22WwkJiYyPT2N1WolPDyc3t5eurq6OHbsGF1dXYyMjGA2m+nv78dkMnlsvNIRQ1FREUFBQdhsNpHGTUpKoquri/r6eioqKqitrQUgJyeHxMREr0sv+vn5ERAQQEBAAGq1mrCwMMrLy/H392dycpLq6mp6enqora1l3bp1XgmOMpmM0NBQsauWWulaW1tpbm7GaDRis9kYHx+nqamJU6dOERQURH5+vkfGI/k1lpaWiqxFYGAgeXl5hIWFifG6XC6x8KmpqREp9JmZGVQqFcXFxULa8uOkqBc1OM5GMtOc/9/eRMrHp6en09bWRmVlpdhBeovg4GCCg4NJSkri2muvnfPas88+y7Zt2xgaGqKrq+tDxbS9gUqlIj09/UNfd7vd1NTUcObMGSHwfrVprenpadra2vjpT39KV1eXWDSdP38ejUbDsmXLxKLmoyaV6elp+vr6OH/+vAjq3ky3LVUcDgenTp3inXfe4eWXX+YHP/gBN95440WONJLLgUR2draQYPzOd76D2WwWMoeSDqYnkcvlhIaGsnLlyjl/X1ZWhtVqpauriyeeeILa2lq2bdtGfn4+11577ZKwUluxYgUpKSm43W46OzsZGRnhyJEjfOELX/BKO5uEQqFAr9fz+OOPMzExwd69e3nhhReorq4WBXaDg4Ps2rULPz8/jwVH+FuA/LCMoXQsIhUEPvvss5w7d462tjaOHTvG+fPnWbt2LbGxsWRmZn6sepGlISYKc6rJvFV9+WGUlpZSXFyMVqtdcioq0niWssKLw+Ggr6+Pc+fO0dHRgZ+fH3fffTeFhYVX9fPGx8epr6+nu7ub6enpOa+pVCpSU1OJjo7+yDYMl8tFR0fHHP9OpVKJVqslISFhSfVhehOn08mvf/1rnn32WV599VV0Oh16vV6kxy/H6OgoO3bs4JFHHuHNN9+kra1NvBYbG7uoXqgBAQGkpaVxxx13UF5ejsPhoL6+XgTvpYBWq+XTn/402dnZyOVyTp06xe7du2lvb/fqOCQLuvDwcLZs2cLrr7/OjTfeOMep6PTp05w7d87jC54rISgoiMTERH70ox/x8ssv84c//IE77rgDuVzOgQMHeOSRRxgeHr6s5vdHsWg7R7fbTW9vL/v37xfVZt7cOZpMJlwuFwqF4qKDXEmt32KxLMnG8KUaFOHCzmxoaIjt27fT1tbGzMwMGo2GzMzMq3Ywlyrp5tshwd8Kheb7cc6mqqoKg8GAyWTir3/965wJPCgoiNjYWFauXPlPa1fldrs5ffo0PT09zMzMIJPJ2LlzpyjEgAuBRqVSzVlYwAWdzubmZqqqqoTvqFqtJjMzk7y8vAWVGJTOjHt7e1m/fv1HPgdSD3VnZyfDw8P4+/tTWlrqUc9OyZ1I0p39KKTUcGJiIt3d3bS0tHDmzBn0ej2pqakeG+dshoeHsVqtIrsjnTPOXyyaTCYxby4FpLYhuVxOQEAAjzzyCDKZjLq6Ojo6Omhra0OpVF61etOiBEeLxcLo6Chnzpzh4MGDHDhw4KIbPTg42KOu162trdhsNgIDAykuLhYaglarlaamJtrb27FYLF6ZMO12O3a7fUmn9yTpqcvtrqQzvZaWFt59910hmh4TE0NycvJVp7L8/f3F/WA2m+f0ZkktQBMTE0KIfT4nTpygpaWFvr4+Dhw4gNlsFr1ver2ejIwMj6oLLXXcbjd9fX2MjY2J1puDBw9y+vRpMcEHBQURHBx80RHD0NCQOPORduE6nY7169eLPuGFYnR0lLq6Ourq6li3bt1lg6PD4cBsNtPV1UVTUxPDw8NERERQUlJCXFzcgo1pPlKx2tTUFAUFBVfU/iCXy9HpdISEhAhB9PmVo57A7XYzNjZGY2Mj09PTFBQUiMp8yYNydiCcmpoSnp1LCUnNrLy8nMOHD9PT00NbWxsjIyNzag7+XhYlOFZXV/Pcc89RW1vLyMjIRSlChULB3XffLdR2PMH3v/99BgYGiIqK4p133hET75kzZ3jjjTc4d+4c4J1dWltbG62trdxyyy1Ldlc4MzPD9PQ04eHhH9q7NjY2xpEjR9i7dy8HDx5EoVCQmZnJpz/9aVJTU6+0EvQi9Ho9W7Zs4bXXXqO2tlaIXgMMDg7yxhtvEBUVRUpKyiV3p5LsmWTGDRcCrl6v5z//8z8pLy+/qnH9oyD1+s5ejA4ODs65XpdDKjbJysri2muvZf369Qt+L7tcLp5//nkaGhquyG9Qkhr7wQ9+QFNTE3FxcWzdupWcnByPOjoYjUb+/Oc/s3PnTn73u9+RlJRESEjIJQOkzWYTghrT09OifcFbwWdmZoZf/epXvPnmm8hkMn71q18RHh4uqpSlwqqljtPpxGg08sorr7Bz5066urrQarVkZmZe0dHAh3FVwdHtdtPS0iJcIi5FeHg4kZGRwhLFYrHQ3t7O/v376ejoEL2EksYqXMi/Z2dn88ADD7By5UqPqjJImoyTk5McPXoUnU6HyWTiZz/7Gc3NzZjNZuRyOZs2bfK4KPXQ0BC1tbXYbDbCwsKIjIwkLy+P5uZmhoeH6e/v5+2336ahoYGenh7cbjepqakkJiZ6dFwSjY2N7Nq1iwMHDnDPPfewfPlykZqShOXr6uo4ceIEHR0dolBo/fr1rF+/nvvvv/9j74oVCgVbt24lICAAq9WKyWSak2599913RXO/hDTRDAwMiHQhIBQ/1q5dS3p6+qKIZi8l5HI5TzzxBO3t7XR0dAjXDSkVfSmkqkWVSiW8/QoLC0Wj+0Iv8txuN62trWg0GoqLiy/58ycmJhgYGOCDDz6gpqaG8+fP09zcTFFREeXl5Xz605/2aDYKLiy6JOm4xx9/nFtuuYXly5eTm5uLSqWiublZ6CaPjIxgMBhob2+nu7ubsbExr9USWK1WIaDQ3d1NcHAwH3zwgSioOn78OE1NTUxOTor/R6vVCgGDhcTlcmE0GqmtraWrq4uOjg4A0tPTKSwsvOj7djgc2O12zGYzJ06c4NSpU9TV1XHq1ClGR0fJyMjggQceQK/Xf6xjsasOjvX19aLC6lLExsai1+s5efIkLpdL5P4PHjwo0jeSuoFSqUSv15OcnExJSQmbN28mMjLSo03uUpmvyWRiz549hIWFMT4+Tk1NjThXCQoKori4+KKKvYXGYrEwMjLC7t27CQsLIzo6GqPRSH19vdB83bNnDzMzM8jlciEy7i0Hk4GBAc6ePcvhw4eJiIhgeHhYpMuGh4fp6uqioaGB2tpaxsfHsdlsBAUFUVBQICryPi4ymYyioiImJibw8/Nj586dc0y2e3t7L+m8Id1nUhpVqrLNyspi3bp1xMTELMlzZW8ik8koKCggLi5OONH39PRgNBo/NL0XFBRETk6OCI5FRUWkpqZ6TCxDWuRoNBri4uIYHx8XTi8zMzOiob6uro5du3bR2tqK0WhEp9OxZs0aysrKyMjI8HjRlUajIT4+npSUFGpra9FoNBgMBnp7e9HpdKL3Fy6c4Y2Ojoo+ZunsLC4u7qqzLFfK9PQ0g4ODtLe3Mz09jdvtpqqqSvS1VldXizNkicTERPR6/YJfQ5fLxcTEBFVVVZw5c4bOzk7gwu7fbreLPmoJg8EgdttVVVVCuEUmk1FcXMzy5cvZsGEDarX6Y92PVxV9XC4XH3zwAceOHaOhoUEEOUD8d1xcHPHx8Zw6dUpMYJK3nrQKkC6yRqNh69atrFmzhoyMjEuKBy802dnZGAwGzpw5w//8z/9c9LpGoyE2Npb169d7fIcmk8mwWCy8/PLLosBEp9MxNjYm5PWkNhO9Xs/Xv/51r/g2wt/Oo0wmE+Pj47zyyisf+f8olUri4uJYt24dxcXFCzIOmUxGXl4eeXl53H777Zw6dUpYo81+gC+F9ID4+fkRExPDXXfdxZYtW7xyn31S0Gq1aLVaUlNTWb169WIP55L09vYKabNrr72WZcuW4efnR3t7O8eOHePQoUPs3r0bm81GZGQkSUlJ3HDDDTz++OMkJCR4RT4uJiaG6667Do1Gwze+8Q2OHDkijhiysrKYmJgQkz8wJ4UqFQdu2LDB4zKLIyMjNDY2MjExIWy0du/eLbwnL8WGDRtYvXr1gstpulwuxsfH2bt3LxUVFdjtdqGW1t/fz3vvvTfn/VLgluTj4uLixHct6a4uxOLiqoKjTCYjNzeXyclJoVow+0uWvP2MRuNFvnput1vIARUUFJCYmEh6ejqPPvooAQEBXvMNu/3223G5XLS3t89JHcAFJ4k1a9bwpS99iRUrVng8FSM18h88eFDk+bu7u3G5XGLiV6lUfOpTn+Laa6/lM5/5jEdlnOZzpbqU/v7+hISEkJaWxjPPPEN2drZH5P/CwsL48Y9/zNtvv83Zs2dpaGi47PtTUlKEFOGTTz5Jdna2R4syfCw8crmcZ599lj/84Q+8+eab3HPPPUI8ZHBwEKvVik6nY/Xq1RQVFbF27VpycnKIjo6+pHqSJ0lNTSUkJIQdO3ZQUVFBX1+fkOG7XKWnXq/nhhtuYPXq1R7vw5Q0kK/kuqjVakpLS7n33nuvuh3rciiVSvLz83n66aeFb+iBAweE3+/8NK6/vz9JSUlkZWWRnZ3Nhg0bKCoqErrJC5VxvKqf4ufnR1lZGTqdjpycHNLT0+cExz179jA9PS0m9rS0NGJjY0WxhEajISIighUrVqDT6YiMjPS69U1GRgZr1qxhfHyc6upqBgcHcTgc5OTkkJ+fz8qVK8U5gacfrNDQULKysvjSl75EfX29KK3u6OgQq6OysjKuu+46Vq5c6VVbJWkh1N/fz+joKNXV1VitVvHdxsfHo9FoCA4OpqSkhKioKPR6PZmZmR6blJRKJcuXLxcp5uPHjyOTyRgdHWVoaEg4nIeGhnLNNddQXFxMeHg4oaGh5OXlER4evihG1j6uHplMRk5ODhs2bMBisdDb28vo6Ch2u53o6GghApGbm0t8fLzoffXmIlJCoVAQFhbGli1biI+Pp6Ojg76+PhobGy/qEZRspDZv3kxRURGrV68mJCTE4+nfsLAwUlNTiYuLY2ho6ENrR4KDg0lISODOO+/0mJE6XAh4aWlphIaGEhsbS3Z2NuPj45ccV0BAgHhfTEwMaWlpHumnveqd48qVK8nOzsZkMs3xI5MOzmefRZaWlrJ8+XKysrKAC+cVYWFhQl19MUhISGDNmjWEhoaiUCg4c+YMFouF66+/XqRsvLW7kBpan3jiCSoqKujq6mJ6eppDhw4xOTmJv78/999/P8XFxV47Z5xNYWEhbrcbf39/BgcH53g2FhYWCseNRx99lOjoaI9WA8KFyUdSxRkaGhIFU9KZk6T3mpiYyAMPPEBpaSk6nc7j5zg+PEt0dDQbNmwgLi6OEydOUFtbi8ViISsri02bNpGZmXlZ1SZvolKp2LJlC9nZ2bS2tnLy5EmmpqYuOsOVjkvuvvtuVq1aRWpqqleyZ2FhYWRkZJCXlyc0k6UFr6T/Kp1/FhQUsHXr1kvKfC4kERERREREkJmZyfXXX+/Rz7oSFkR4fH6qQKoglJjvpTb/34uJy+WaIzrgTX/ESzG7lHv2dZXGtVhIfY7zBRpmG8gu1kJHuk7StZP+LI3JA9dt8W/cq2NpNahdJdJ3LH3fs+eXpTCnzGa2WfnlxE0UCoXXx+92uxkZGaGiooLm5ma6urqw2+00NjZSWVnJzTffzN1338369es9KpywBLjkRV9UVw4fPj6hLK0Z+MrxPc8+5iA5YUxOTjI9PS0qR41GI3FxcSQmJhKJTTYoAAAgAElEQVQZGfmPXtHtC44+fCwQvuDow8c/Dpd8npeM8LgPHz58+PCxVPAFRx8+fPjw4WMevuDow4cPHz58zMMXHH348OHDh495+IKjDx8+fPjwMQ9fcPThw4cPHz7m4QuOPnz48OHDxzx8wdGHDx8+fPiYh0992ccVYbfbGRoa4sEHHxROK3DBtzMiIgKdTsfRo0dxOBwEBgZSVFTE1q1bSU1N9ahptQ8fs3E6ndTX13Po0CGam5txOp20t7czMzODQqHgpZdeIjY21qNOOzU1NRw8eJB3332XnJwcYS0XERGB3W5nYmICgJCQEHQ6HSUlJaSmpi6KSLqPD8cXHP8BsFqt9Pb2YjAYyMzMRKPReMR1wuVyMTAwQG9vL1NTU8AFMeiwsDBCQ0OpqanB4XCgUqnEWAIDAxctOEoBvbu7m8nJyQ91HggJCSE5OZnIyEhUKhVKpdLLI/WxUDidTmpqajhy5Iiw0uvs7MRisRAQEDDHLchTjI6O0traypEjRxgaGhL3f2hoKA6HQzw7Go2G8PBwBgcHueuuu9Dr9Uv+3nM4HMJcWpKck1AoFGg0GpYtW7bkf48rwePBcb7P42zmC/HOFvxeTJHtTxIul4uRkRG2b9/O0aNH+e53v0t6ejohISEL+jkKhYKQkBBuuukmdu7cSWtrK06nk+HhYYaHh8X7ZDIZVquV2tpajh49ilqtFn6V3sTtdjM+Ps7Bgwd59dVXaWxsnGMyO5vc3FweffRRNmzYgF6v94qJ9D8L0vM9/9mXxLhnC4Z/HNFt6edbLBb++te/UltbS19fH3Dh3lUqlSiVSq/MK7N/l/Pnz3/k+19//XXhfepp54srRfpuZuNyuZicnKSzs5OqqioaGxtpa2sTr2s0GjIyMvjqV7+6ZH6Pj4NHg6PT6eTkyZNi1W4ymQCYnp5maGiIP/7xj1gsFvH+G2+8kfT0dPR6PbfddpvXTUo/aQwMDFBTU8Ozzz6LxWIhJiaG9PR0j/g9ymQytFot3/ve91i7di1HjhzhpZdeEvZQ898bGBhISEiIV70nZ3Pw4EEOHjzI//7v/zI1NXXZ3UJLSws//OEP2bZtGw899BAPPfSQL8V1CdxuNyaTCavVisPhwM/Pj+jo6IssllwuF0ajEavVislkoqWl5SIvw6amJiYnJ8VipKysjNtuu+3vHpPNZmNkZITBwUE6Ozs5d+4cR48enbOj+f3vf09+fj5KpZKkpCSP72rUarVYYKWkpBAdHS28bKenpxkdHeXMmTOEhISg1WrR6XRYLBZGR0cXPagMDQ0xMTHB1NQUhYWFc+bfF154gWPHjlFRUSG8NGcfsWg0Gtrb23n00UcX/fdYCBY0OE5OTtLS0iK8ESX365mZGSwWi8i122w2Jicn6evrE76AABUVFbS2thIaGsr69esJCgryanB0u904HA4sFgtyuZygoKDLvn9oaAin04lcLveI2eZsbDYbFotF/PvYsWO0tLTQ0NDAyMgIK1euZMOGDVfs7v33Mj09jclk4sCBA7S3t2M2m9m4ceMljVn9/PwICQlh8+bNZGZmLvhYLofT6eTcuXNUV1dz9uxZjEajeO3DdiZ2u53x8XFaW1s5e/YsJ0+eJCsri5CQkH+I9NBCMDMzg8Fg4E9/+hNjY2PYbDb8/PzIycmZswByu93Y7XY6OjqYmJhgenqakZERhoeHcTqdyGQyEhISMBgMuN1urFYrWq32qj1AJycnOXnyJHv27KGvr4+BgQGmp6dRq9WEhYWRmZlJVlYWKSkpYgfpaVuoqakphoaGgAsL/rKyMjGX2O12ZmZm6O/vR6VSoVKpUKvV5ObmLtrxg9PpZHJykvPnz7N7925GRkaw2+2UlZURHh6OTCajubmZPXv20N7eTn9/P06nk/DwcHQ6HbGxschkMtRqNenp6R85b3oSybjZarUCMDY2hsFgYGpqSpgjX+mctKDBcWxsjMOHD/P6668zPj6O2+3GYDBgs9mw2+1YrVaR/riUp2NzczPt7e0EBgYyMzPzod5nnsDlcmG1WhkaGsLlcqHRaC76kqVVktPpZGZmhvr6epxOp1gpeiIouVwu7HY7g4ODmEwmJiYmmJiY4I9//CONjY2YTCZyc3MpLy/njjvu8JhRqtlspre3l1deeQWHw0FYWBjXXHMNRUVFF10nuVyOVqslOTnZ6w+K1WrlyJEjVFdX09TUBFy4x/z9/fH39//I8QwODlJfXy9c5H3BEfFc1NfX8+KLLzI8PCwWkCUlJXNS+G63G5vNxvnz5zGbzWLH7ufnh0KhQK1WExMTI853pcnqavwCXS4Xo6OjHD9+nFdffZXR0VGR4UhOTiYtLY3rrruO2NhYjy0aL4XZbGZ0dBSAtWvXcueddy5ZyyeHw4HJZKK7u5vdu3fzm9/8huHhYWQyGQ0NDSQkJODv78+ePXsYHx/H6XQSEBCARqMhLS2NjIwM8vPzRXBMS0vzWLZIurdsNhtOpxO73X5RRqihoQGDwSAyB93d3XR0dDA0NEReXh7FxcWLExx7enp49tln6e/vn7MjvFICAwOJj4/nmmuuISwszCNFJR/G8PAwZ86c4Vvf+hZf+9rXWLlyJVFRUeJ1u90u8usdHR28/vrrbN++ndjYWMrLyyktLfXIw2c0Gjl//jw/+tGPqK+vZ3BwEJlMhkKhIDw8nPz8fL797W9TUFDg0UAUGBhIcHAwFRUV2Gw2oqKiiI+P5/777ycuLu6i9y+G6azFYmFgYICf/exnjIyMiJR9eHg4ycnJFBcXc++99152AeHn54e/vz+hoaFecWT/JHDo0CHef/993n77bfr7+8Wi1el0UlVVNee9brdbZFI2btxIeHg4fn5+REZGkpOTQ1FREWlpaSgUCvG8XO154+DgICdPnuSll14SWanAwEB+8pOfsHz5cpKTk4mIiPD6vZiWlsbmzZt56623qKmpISYmho0bN3p1DFeC0+mkubmZF198kYMHD4rFvsSRI0fEtXO73WRlZZGWlsaKFStYs2YNaWlpJCQkiPd72sR+YmKC48ePU1tbS2trKy0tLXR0dMwZ8/T0NHa7XWQ24G9m6Hv37mX16tXcd999V/R5Cxp9JKf4y3HttdcSGhp6yQu4fPlyUlJSyMjIIDQ01GsrPavVyrvvvsuOHTvo7Ozkl7/8JcnJyWRnZzMwMCDSwlNTU7jdbsxmM/39/ZSVlZGXl0dJSclFqcWFwGKxUF1dzcsvv8zp06dFi0RRURG5ubnExsYSHx9PRkbGghfgzEcul+Pv7y8KKWZmZjh79ixdXV1MT08zMzPDsmXLCAwMXLSg0tzczL59+zCZTHMWZ1u3bmXlypUsX74cvV7/kfeVTCYjKCjIq4uzpYiUanv22WdpbGwUqdDZREVFkZCQQFZWFgA5OTmiLUHaHQIEBAQQHByMVqslICBgQSZQp9MpjmicTqfYMebk5KDX69FqtYuySOvt7aWmpkYElPz8fK+P4aOQzmqffvppTp48SW9vrwgyarWa8PBwEhMTCQ4OJiIigsLCQrKystDpdISHhxMREYFarfbKHG2329m1axc1NTWcPHmSrq4uxsfHmZycxGw2z7knpWOukJAQioqKUCqV+Pv7U1ZWhkKhQK/XX/HnLujTHxQUREpKCgaDYc7kpNfrCQ8PJzAwkM2bN3/oaq6kpIT4+HhxeO0NXC4XnZ2d1NTUUFlZyeTkJGfOnKGzs5P29nZ6e3tFDlutVhMUFCTaE9avX092djbp6ekeeQgNBgPNzc1UVVURHx9PWloaKSkplJaWkpeXR2RkpNfOKWQyGXK5XPyeNpuNnp4eKioqCA4OZnJykoGBAXGNtFotMTExBAYGei3IjI6O0tbWhtVqxel0olAoCA4OZtWqVZSVlYkJ3MdHIznEV1dXU1NTIyqSVSoV4eHhqNVqlEol2dnZpKWlkZOTA0BhYSEZGRkile3J4OR2u0WAhAutEikpKcTHxxMSErJoizSbzSbSelJqfmJiApvNhr+//6Kn610uF/39/Zw9e5bDhw8zNDSE1WolICBALLiTk5NJT08XFbQrVqwgMTGRoKAgry04zGYzExMTNDY2cuTIEc6dO8fExARut5ugoCDxz/zr6e/vj1qtZvny5aI1a82aNfj7+/9dZ9sLOmvFxcXxyCOP0NTUhNlsFn9/5513ctNNN5GdnU1MTMySSlfZbDb+7//+j6qqKpGyBBgfH+fcuXPiz1KlW15eHllZWVxzzTWsWbPGo1WNNTU1nD17lomJCf70pz+RlZW1ZNoMrFYrPT09fP/73xcTlE6nQ6lUotVqWbduHQ899BAZGRmEhYUtyhjVajUrV65kxYoVJCcnL8oYPqmYTCbq6+t59dVXRcpSWnlfe+215OXlERUVJTJBi42UypWyA4s5x0RGRpKZmYlMJqO7u5v6+nrcbjeDg4NERESQmppKXFzcolXiWywW9uzZw/PPP093dzdut5uAgAB0Oh2PPfaYOCZarEpzCWnx/a1vfQu1Wk1KSgr333+/KKqSyWTk5OSQkpIy5whsoVjQ4KhUKomKihKpNWn3eOjQIcbGxrjtttvYuHHjkniY4MI5Y1NTk6h0k7bner2eqKgo9Ho9MpmMsrIySkpKSEtLIyAgAKVSSWBgoMdUNmZmZmhvb+eFF17AarVy9913I5PJeP/99xkcHESj0bBp0ybi4+PRarUeGcN8pHPO0NBQxsbGRDWYtAhyu92iIMJgMNDX18eePXvIzs7m1ltv5YEHHvB6cY7UUqJWq5dsQcRSZd++fezdu5fa2lqxuEhJSaGwsJDc3FxiYmJQKBSLWpk4m8DAQJKTkykrK1v09q+pqSlGRkZwu9384he/4PnnnwcuFL8oFApUKhWFhYUUFBSQnp5OVlYWGRkZXruWUjtGQ0MDbrebnJwciouLefjhh8nNzUWr1XpUQeijcDgc7N+/n/fee49du3bxxS9+kfLyctLS0sTmYPamxVMLoQUNjiqVipSUFDZu3EhDQwO9vb309/fT398vGv4VCgWxsbEEBQWRmZnpkbO6K+Ho0aO0trbS2NhIV1cXarWaiIgIIiMjSUlJISEhQVQ1ZWRkkJqa6pV0r9RY/5e//IWmpiZR5ff222/T09OD0WgkKCgIk8lEYWEh69ev98rZitTasmLFCk6ePClK1d1uNxEREcTHxzMxMYHFYsFisTA2Nsb09LRIJZWVlZGYmOjVhZFU3TY8PExYWNii7WA/ifT29tLZ2cnMzAylpaXk5+eTmppKQkICkZGRV916sZAEBgai0+nIzc2lt7eX3t5ejh49yszMDIWFheJ8aba4iDdwuVyist1gMFzyPTabjaGhIerq6oiPj+fOO+8kLS2NmJgYj47N7XZTUVFBc3OzWODm5eWxbt068vPziYiIWLQ5Gf5WVPfee+/R3t5OfHw8GzZsIDMzk8jISK9mBBb8zDEjI4N7772XEydOcOzYMUZHRxkdHcVoNHLu3DmcTifLli0jJiaG1NRUr38RLpcLi8XCG2+8wenTp0XfTkFBAdnZ2eTn55OUlERaWhqlpaVef6ikIogXX3xRFED09/dz5MgR8R673c7JkyfZvHkzy5Yt85hc3GzkcjnBwcFcd911jIyMMDY2hsvlQqVSkZaWxpo1a+jt7WVsbEx81zabjYGBAfbu3cv111+Pn5+fV4Oj0+lkbGyMhoYGlErlFa2GFQrFkkr7LxaDg4MMDAwgk8lYt24dK1asmFOZuBSQZP82bdrEtm3baGhooK+vj4qKCj73uc+JbEF4eLhXz/jkcjlKpRK1Wj2nknL2GazRaGR4eFg8z2q1GqvVSmhoqEd3bW63m/3799Pc3Cz+Li8vj1WrVhEWFraogREu7Lrr6+t54403SE1N5fbbb2fdunWLMi7ZR/QSXlWjoXQGNTY2xlNPPUV1dTVdXV2MjY2hUCiIjo4mLy+P119/neDg4Ksb+VXS3NzM008/zV//+lcmJiZEha2fnx9yuVysMu+44w5++ctfiiZYT+NwOGhqauK5557j4MGDtLa2UlRUREJCwpxWibGxMXbs2IHZbCYlJYWbb76ZH/7wh15bydvtdt58800qKys5f/48Dz30EHl5eWRkZIhK1oGBAf7f//t/7N27VxRyaLVavvvd7/LNb37TY2M7dOgQb7zxBi+++KJYucvlcgICAkhPT6e8vPwjf8Z1113HTTfd9FETlPdLIBeGK36eb7vtNt5//30A3nvvPYqLiz2+q7kapODy05/+lP3793P48GHkcjlyuVwsGHfv3k1JSYnXFj09PT20t7fT09Mzp5LyuuuuIyQkBKfTyalTp2hra6O1tZV9+/bR3NxMQkICt912G//+7//usfM+l8tFbm4uHR0dopDpmmuuIT8/n3Xr1nHTTTd57ajmUrS2tvK73/2OX//61zzyyCP85Cc/8cb3dsnn2SPbDblcLqraHn74YTQaDcePH6ehoYGZmRnGx8fp6OigoqKCvLy8S/bJeQqXyyWaSGev6hITE1Gr1dTX1yOTyejs7GTHjh3cddddHj+vcjgcGI1Gfv7zn1NRUYHL5eILX/gCq1evJioqas7NajQa8ff354MPPmBkZIQTJ05cVU/p1eLv7y/y/2NjY2RkZFy0MtdoNCQmJs65bvOlpjyBRqMhLi4OpVKJ0+kU1YwzMzN0dnbOKRL7MEJDQ8nMzCQ7O3tR2gCWChqNhpCQECYmJqivrycyMnJJBkc/Pz8CAgK45ZZbCAwMxGq1Ul1djdVqFWnDv/zlL9TW1qJUKrnzzjsJCQnxaKYlIiJCFPDNDo4RERGiHSo3Nxe9Xk9xcTGrV6/mF7/4Bb29vbz//vts3LiRnJycqxJG+ChkMhkPP/wwBw4c4MSJE4yPj9Pc3MzIyAgNDQ28//774lmWFpXSOFasWEF0dLRH28b8/f2JiIhAoVAwMDBAZWUlCoWC9PR0r0vSeewOkclkBAQEUF5ezsDAADabDaPRSE9PDxaLhaGhIY4dO0ZoaKhXg6NCoUCr1RIbG0tYWJgorsnJyUGlUjE0NCSCjcFg+Mi+zYXA5XIxMzPDkSNH8PPzIzMzky1btrBixQqCg4PnrJzGxsYwmUxUV1fT09NDZ2enx10G5pOcnHzZ6k+peGd2cAkNDfW4XmloaCjLli1j2bJljIyMMDU1JZw4JGWh+czPnDQ1NdHS0kJ2drZHx7rUkWzIxsfHOXv2LHFxcSxbtmzJ2o/l5eWJs26z2czQ0BBTU1NCMens2bP4+/uTnp5OWloaUVFRHtuRSC0GH4ZMJkOn04kahuLiYqqqqjh8+DBnz56loqICpVKJRqNZ8MyaTCbj+uuvx+12Mz09TX19PRaLhe7u7otE0tVqNQUFBSxbtgy4UKGelZVFZmamx+ocVCqVONc2mUzs27cPpVKJ2WwWR0jS4sbjdRZPPfXU5V6/7ItXinSW19/fT3t7O5OTk1itVk6fPk1OTg6lpaUL8TFXhJRCXb58OZ/61Kd48MEH+a//+i+2bt1KSUkJIyMjaDQaNm/ezJNPPumVVIzT6cRsNlNVVcW3vvUtvvSlL1FYWEhgYOBFuXaVSkVBQQGHDh1idHQUp9PJF7/4xSVTNQgXdrcvvvgibW1tQmbsnnvuYf369aSmpnrsc8PDw8nMzCQtLQ2VSoXb7WZ4eBiFQnHRP1Lqbf7iR5o0PvWpT12u6vEHHvslPMtTV/rG3t5eJicnaWpqoq2tjfHxcfz8/CgoKFj0atBLIZfL0ev1bNiwgQceeAB/f38hTtHR0UFzczOtra0i8CQlJS1q+nA+ubm5JCUlMTY2xs6dO5menhY7t4UOArGxsZSUlHDTTTcxMDAgetClVjbp8+x2O729vdTV1XHu3Dl27NjB2bNnCQ8PJz093SO7b5VKhV6vx+Fw0NzczCuvvMK+ffs4deoUp0+fZmZmRvhxLuDnX/J59poESHR0NE8++SRHjhwR51B2u52+vj5aWlpIT0/3yjhCQ0PZuHGjKKv29/cXD7vNZqOzs5Pc3FzR1OwN/P39iY6O5plnnkGn013R+aGkIbnY1WXzkYSVDQaD2NHKZDLKy8tJSkry+OcrFArKy8vJyclhenp6jjvDbKampti1axevvfYa3d3d4u/XrVvHv/7rvy7JAOBNbrzxRkJDQ2lra6O5uZnjx4/T2trK6dOnyc7OFm0dkZGRS0ZJSBKqUKvVPPDAA5SWlvKzn/2MY8eOYbPZcLvddHV1UVVVRWxs7BXLiHkDKeBs3LiRAwcOMDw8PEc0f6EJCAggOjqa733ve0JlqLW1leHhYXp6emhtbQWgs7OTvr4+IezS1tbGb37zG1atWkVcXNzHLh5yOp24XC6xCZGs8R566CE2bdpEa2srx48fp729ndbWVmpqajh+/DibN2/m3nvv9Wihldfuamm1JlVjSbY3PT09NDQ0sGzZMq9M8gqF4kNL+mcLVHtzcpTJZCiVyitaILhcLqamprBYLCgUChITE5dUcDQajXR2djIyMiLaONRqtdfaOKRFw4ftCqRJcmRkhHfeeWdOWlU670hKSvqnPm8EiImJIScnh5tuuomgoCC6urro6Ojg0KFDdHd3o9fraW1tJT09HZ1OR0REhNiBLHa1r5+fH7GxsSgUCjZu3Eh9fb1QVpHcgUwm0yU9CxcLhUJBZGQkRUVF5OfnYzabOXnyJDfffPPH0vmdnp5m586dxMfHExUVRVJSkkhJKpVKUlJSgAsp05iYGIxGI0NDQ6KNrb29nc7OTurq6ujs7GRiYoLm5maMRiPh4eEfOzg2NzfT09PD8uXL0Wq1+Pv7I5fLiY2NJSQkhNjYWDQaDW1tbbS1tXHs2DHq6+sJCgoiISGB1atXL5gc4Xy8vuSLjIwkLCxMnO01NDQQERHBDTfcgEwmW9QVu0KhIC4ujomJCcbGxhZtHJdD2t2Oj4+jVCpJS0tbUsGxpaWFiooKurq6gL8VySQkJHhc//VySMU5kg9dd3c3e/bsER6jMpmMkJAQVCrVkpkwFxOlUklmZibf+MY3SE5OZvfu3ezcuZOmpiYaGhrE+1avXk1ubi4lJSVC/tFbFd4fhVQQ+Oabb161GYI3CQ8PF8LY27ZtY9u2bXzmM58hLy/vqnt0h4eH+Zd/+RduueUW1q9fz913331J3eqAgAD0ev1F2qMjIyP09PSwfft2/vjHP9LT08PIyAgjIyPExcV97AXv7t272b59O0899ZT4PaV7R61Wo1arRQvRwMAAr7zyCq+++iqHDh2iv79f6L16Ygfp9eB45513olKpeP311wE4d+4cU1NT/Nu//RuRkZGLpmQyNDREe3s7JpOJa665xqNnY1fLyMgIdXV1PPHEE2i1WjZu3MgXvvCFJXXeuHPnTn73u9+JP0tOK2FhYYumuuFyuWhqamLv3r1s27aN/v5+xsbGmJqawuFwCOmsp59+eknIZi0V/P390el0PPzww9x000189atf5ciRI9TV1dHS0sLp06eprKykurqa1157jTVr1nD77bezcePGJfH8TE1NCXUubxTWLRTR0dEEBwdjtVo5deoUCQkJVx0cpWK/7du3U11dTWVlJU8++SR6vf6Kin10Oh1ut1tU2Uqi/JK27sdlfHycxsZGfvCDH/Doo49SUlJCRkbGJd8bHR3N1772NdLT09mxYwfbtm3jmWeeYevWrVfUpvX34vXgODw8LLzOAIKDg4mMjESpVC7YrrGnp4eDBw9iNBrR6XTEx8dTVFSERqMR6Qmz2SyadeHClzQ4OIjRaCQzM3NJPNzzqa6uZu/evYyMjHDDDTewevXqD3U4uRoGBgbo6upi//79wIWVbF5eHqWlpR+5aLHb7Rw6dIimpqY5u26p1N5bGQHJrV5yo9+7dy8Oh4Pu7m5OnTpFc3OzKAgDhIjBLbfcwooVK4iJiVkSu56lgkwmQ6VSER0dTVBQEBqNhuLiYgwGAz09PZw9e5aenh66urqoq6tDoVBgMpn49re/vWhjloqqpFaAqakpERyjoqLIysqiqKjIY9+z1WrFZDLxhz/8AZVKRVxcHNdffz3BwcFX5AgjHUFI9/DH2fEGBQWxefNmTp48yfDwMCdOnODll1+mqKiIvLw8tFotkZGRcxbYkgNRcHCwSKkeOHCAsbExtFot2dnZxMXFLUhvdWZmJhs2bKCzs5P33nuPhoYGysrKyMjIEFlGCT8/P4KCgli2bBnR0dGYzWYqKytZvXr1xx7HpfBKcHS73aK/sLW1lf7+fvFaZGQkqampqFSqBZtABwcH2blzJ42Njej1erKzs1GpVERFRYmbwGg0CtNOgK6uLvr6+ggICCA1NZX4+PgFGctC4Ha7MRqNVFRUcPDgQbRaLeXl5RQVFS3o+c7IyAhnzpzhueeeAyApKYlbb72V1NRUtFqtaKifjaQ4NDo6yvvvv09ra6toLoYL6RpveOpNTU0JA9SGhgYcDgddXV389re/xeFwMDY2Nue+k8lkBAcHEx0dTXFxMZ/5zGdYtmzZop+XLVUk1/rIyEhcLhdOpxOLxcKOHTvEDrKiooJjx44xPj7O17/+da+U218Kt9tNb28vZ8+epaamhsnJSbHrSUhIIDs7m7y8PI99vsViob+/n1/96ldoNBrR05iYmCjmOaVSSUBAwJxiJin1L3ldSvZ4H6dVKygoiJtvvhmDwSA8ELdt20Z3dzcmk4m4uDjS0tLmBKHx8XGMRiNRUVFUVVVx/PhxKioqcDgcpKSkUFJSIszAPy45OTmYzWa2bdsmjBYGBgbYsGEDWVlZoipWcgSy2Wyi8MrtdosjJk/gleBotVoZHR2ltraWffv20dLSIopfVqxYwac+9akFPY8KCwujpKQEo9FIXV0du3bt4o9//CORkZHiCx0dHRWWRhJ6vZ6f//znJCYmLthYPi5SAc43vvENjhw5gtPp5JlnniXdjh8AACAASURBVGHdunUL3hSrUqkIDAzEaDTicDiYmZnBbDaLpv6YmBjKy8vnTHgGg4Ha2lp27twphNIlFAoFy5Yt45FHHvF46vfNN99kaGgIo9HIb3/7W2ZmZrDb7Rf1MUqEhIRw//33s2nTJrKysrxanfxJx8/PT5hC33333dx6660MDAxw8803Mzo6Kpzl4+PjFyWVbrPZ+OlPf8rvf//7Od+/XC7nuuuuIz8/36PFYVNTUwwMDDAwMIDD4aCxsZG33nqLG2+8kZiYGCIjIykuLmbVqlWiIAYuBNXBwUG+853vcPbsWeE08nGOmrRaLV/5ylcIDQ1l7969vPnmm/T09NDd3c1bb70lCuZmB2lJ4Uxqh7FarbjdbjQaDVlZWTz88MML9jzn5+eTkZFBTk4OzzzzjNjZvvzyy6xatYrrrruOlJQUYmNjkcvlNDQ0sH//fpqampDJZBQVFXnEkQMWMDharVZsNhsWi0U0rkuFIkNDQ5w+fZof/ehHYvWuUCi47bbbuPXWW1mzZs1CDQO4YJ21ZcsWRkdHRYpDOmOa7UmYlZUl7FkiIyPR6XQkJiYuqtfabBwOhwg8p06d4sYbb6S8vJw1a9Z4pLhFr9ezatUqtm7dyrlz5zAYDHR2dvLCCy8Id4v09HSRYnM6nZw/f57+/n66u7vn7Bjlcjlbt25l06ZN5OfnL9iObGxsjPHxcWZmZti3bx8dHR1Cy1UypZ6ensbhcIiJURpvcHAwt99+O5GRkcKZPioqakmIaC81+vv7mZycxGKxkJ2dfdlnwmw2MzAwgNPpFJ55sbGxXn2OpqamOHHiBLt27cLhcFBdXX3RwsjPz49NmzbNCUieQKfTUVhYyOc+9zlRnDY2NkZ1dTUBAQFC4So0NJSIiAhKSkoYGxtjZGSE9vZ2GhoamJycXDDRDIVCwfXXX09OTg6bNm3i/PnzdHd309nZKWo+Zl8rSQYSELvW4OBgHn/8cdauXbvgnQVKpZKsrCy++c1v0t7ezqlTp6ipqcFkMvHnP/9ZuOrIZDImJycxmUwEBASwYsUKvvzlL1NQULBgY5nNggXHwcFBhoeH6e/vZ+XKlYSGhhIQEEBnZydnzpyhsrKSU6dOiYsuk8nIzs5m2bJlCx75g4KCSE5OZsWKFTidTjQajSjdlj5bpVKRl5c3JzguViHG8PAwBoMBvV4vHOilIpLKykoOHjxIZGQkpaWlrF+/nujoaI+kq4KCgsT5SExMDO3t7Zw5c4bh4WERbDo6OsS1cjqddHZ2Mjk5yczMDP7+/oSGhhISEoJOp2PTpk2UlpYu2Cpdakpvbm5mdHRUBEeDwcDY2Jho04AL/azBwcGo1WqysrIICwsTVdFRUVGEhoYSGho6Z7Hk42/09vbS1dXF0NAQcXFxhIeHXzQhOp1Oent7aW1tpbq6mpmZGYKCgoiIiCAwMNCr19XhcIiCNZfLdVG1uVKpJCwsDL1e7/Gq6YCAAKKiorj++usJCQnh/PnzNDY2YjAYMBqNWCwW8d7AwEAMBoNIZfb19YnXgoKCPlYbx2yk7zAuLo7k5GS6u7tpb28nMDCQvr4+0eoiIZPJRDuMXC4nLCyMjRs3UlhYuOCLSalSvLCwUKjjRERECPEBmUwmgrRU4BcfH09hYSHLly/3mNvOggXHyspKjh07xr59+3j++efJysrC5XLx6quvsn//fhobG8V7pZaNxMREj6lUSOLhGzduFJJrs1GpVERERHhsS/73cPz4cXbs2MFjjz1GWloaISEh2Gw2fv/733P06FEaGxt56aWXWLlypcedEYKDg3n44YeBC1Jqv/vd7zh58iQmk4nR0VF6enrmnN3B35qvtVotq1atYvny5WzYsIHi4uIF+37dbjctLS289tprvP3223Mmkflj8fPzIz8/n9zcXPLz81m9ejVxcXFLxij6k8Dp06c5fPgwVVVVrFq1SphYS0iqTm+88Qb79+9n3759OBwOVqxY8aHVhp7Ez8+P4OBg9Hq9WLRJyGQyQkNDyc7OJigoyCutTwEBAWzZsoUtW7bQ39/P66+/zu7du2lubqa9vV28z2w2C8edS/2MrKysBQtGkvqM1K7hcDg4e/Ys7777Lo2NjXOORJRKJY888ghKpRKFQkFUVBSJiYkelYBUKpXExMQQExPDpk2baGtrm9M2NJuEhASKioo8NhZYAFcOqTLs85//PPv372d6eprPfvazjI6O0tDQwMDAADMzM0LsOy4ujrVr1/LYY49RUFCARqPxaPuGdMg9v5RbmtCXghLK4cOH2blzJzt37qS8vBytVkt9fT0NDQ3CLPi+++5DrVZ7tafRbrczOTmJzWZjamoKo9HIe++9J872+vv7SUxMFLqbxcXFYoWqUqkWtALZZrNxzTXXCPnB+SLmhYWFFBcXU1paKq6hpHEpFT4s4Hf9Sd1qXrErx7Zt29i3bx9vvPEGN998MzfccIMQ925qauLcuXO89dZbnDp1isnJSWQyGWvXruW+++7j+uuv97oGq9TgPz09jcVi4Vvf+pZoF/v2t79NcXExaWlp5Ofne/3YxOl0Mj09jdlspqWlhZqaGvbv309HRweDg4NzPB9lMhn33HMPa9eupbS0lLy8vAV9juZjs9k+9Hw+ODhY7P4llxNvZwNmH9XMRqFQLOT36DlXDrlcLspuTSYTlZWVTE5O0tvbi9VqFZJOhYWFFBYWii9dqoD0JJII9lImPj6e5cuX8+6771JbWyv6iG6//XZyc3NZuXIlGo3G64Hc399fTHJ2ux2dTofNZmN8fJzp6WnGx8cJDw8nNDRUnNdqNBqPTD4ymYzw8HD6+vpEK1BOTg6RkZEEBwezZs0aISqdlpYm0kFLYfHzSSQ7O5vJyUnq6+upr6/H5XJhMpkIDg6mqamJ1tZWamtrGRsbIy4uThRPFBcXL4o4uUwmIzAwkMDAQBwOB1u2bBGFdTfeeCMJCQnCFcPbyOVyQkJChGC2Wq0mKiqKkZERJiYmmJycnPN7rFq1ioyMDJKSkjxe0KRUKpdMjcV8JB3kRfv8j/sDJBmivLw8BgYGhP6ihFqtxt/fn4SEBLZs2cKGDRuIj48XivQ+ECXeaWlpNDY2MjU1xS233MKXvvQlrxc2fBjSeeLatWsX5fNlMhlr1qyZY321bt06cnJyiI+PF0VKiyUi8Y9Gfn4+QUFBtLW18Yc//IG+vj4qKyvRarUMDAyI8vnw8HCWL1/Oww8/zLp165bEQlShUHDXXXdx1113LfZQLiIiIoKIiAiKi4sXeyg+PoIFMztuaWnh0KFDPPnkk0xOTuJ0OgkKCuK73/0ukZGRotBDMhP2cTF2u12kfyXXCN+1+hsOhwOXyyXSP1JLwSLIDn5Sv5S/y7xc8sL87W9/y549ezhw4ABhYWGUlpYKjc67776blJQUdDqdb5fu45PKJZ/nBQuOU1NTDA8PU1tbK/LXcrmc/Px80T+3FM1Sffi4Cv4pgiNcCJBtbW309/czODgoRB00Gg0ymYzk5OQFkxLz4WOR8Gxw9OHjn4h/muDow8c/AZd8nn15EB8+fPjw4WMevuDow4cPHz58zMMXHH348OHDh495+IKjDx8+fPjwMQ9fcPThw4cPHz7m4QuOPnz48OHDxzy8Imdht9sxm80MDQ0BCJNhrVbrEwX4hCE14rtcLiFU7HQ6cTgcmM1mQkND0Wg0XtWA9bG4WCwWYQnndruFUHVgYKBHhQEkc+vJyUm0Wu0V6edK7jJ2u52hoSHkcjmBgYHodDrfPORjDl4Jjm1tbRw5coTPf/7zyGQyCgoKuOOOO3jssceIiIhYFENUH38/LpeL/v5+pqamMJlM1NXV4Xa7GR0dpbu7m4MHD/KVr3yFu+66a0m4nfjwDjU1NTz33HO88847WK1WYmJieP7551m9erVHZSKNRiPNzc289dZbPProoyQkJHykC8zQ0BDT09N0dXXx0EMPERMTw9q1a/nxj3+MWq32BUgfAo8FR4fDwcTEBD/72c+or6+fY9MyNDTE8ePHefDBBz/Uqd3bHD16lKqqKt577z10Op3QiBwaGpozxqeffprS0lKPjsVisdDd3c3U1JTYpfX29goz35GREcxmM1NTU4yPj1NWVkZZWRn5+fkeG1NraysnT57kl7/8JTabDbvdzvT0NOHh4QQGBhIUFMSDDz7IqlWrPOav5mPpMDo6yu7du9m1axetra10dHQIP02LxUJVVRV5eXkeDY41NTUcPnyYt956i7a2NmJjY4mOjiYlJUWIertcLmFnFRkZyV//+lcUCoVY1JnNZhITE4W58D9TxsPlctHX1ycck+CCZ2p/fz+tra0XvX9wcJDR0VEMBgOrVq0iODiYsLAw7rjjDgICAv7h5AM9EhxHR0cZHh6mvb2d/fv309nZyejoKDKZjOjoaJKSkli2bBkqlWrRL6jb7aavr4+qqiqhHykFR7fbjclkQqFQCJNNu93u0fFMTEzQ29vL3r17xcPtdrvp7+/HbDZjsVgwGAyYzWZmZmaYmJhgYmKCwMBAoqOjPbZjc7lcmM1mKisrhQ9mamoqERERBAcHEx4ezjXXXENCQsKiOB9cjr6+PkwmEwaDQRirhoWFkZyc7Nsp/B243W4MBgMDAwN0dHSwe/du9u/fj9FoFIFRq9USHR1NWFiYx0XIBwcHaW9vp7e3F5vNRmhoqPheDQYDk5OTYmGr0WiIioqip6eHsLAw1Go1MTExaLVaYmJi8Pf3/4e/F6R0cmdnp3ADaW1txWKxiOA4NTVFf38/HR0dF/3/w8PDwht3fHxcLDhKS0uJi4sjKCjI27+SR1nwu9flctHY2MjRo0fZu3cvp06dEhdeLpdTUlLC5s2b2bp1KzExMYseHO12O/v27WP79u0cPXoUmUyG0WgUr2s0GnQ6HUlJSdx1110eNxtub2/nwIED/Md//AdWqxW32z3noZ3v1g3Q1dVFQEAA4eHh3HTTTR55yGNiYigoKEAul1NeXs6mTZv47Gc/i1KpxN/ff0m4MVwKt9vN/v37OXbsGIcOHQKgqKiI0tJSvvzlL6NUKv/hJ8WFwmazUVlZyfbt26mqqqK5uVkERblcjr+/PykpKZSUlLB161aPptalhavkhTgyMsL/x96ZR7dZ3vn+o8WWd8mLLC+S9z3eY8dZsR2SECAtDQUKbSjTdriUoT3MtLN05g69cOdO27m3M53bYboAXWlZCjc0hCbYScieOHEcO3a877utxZZtSZas7f6R874TkwSyWLJp/TnHhyBLeh+/y/N7nt/y/RkMBgDOnz+/6H2CML1MJuNLX/oSKSkpYmPkrKws1qxZs+K7BF3vub9VnE4nZrOZ3/72t1y+fJne3l56e3txOBzX9Ee9Hlcf99ixY0ilUqKioqisrKS6utovxvF2PY23c86WdEbr7u7mxz/+MYcPH0av1zM7OysaxoSEBJ588kkeeeQREhMTCQkJWXbDCFdcmP/4j/8oPmQhISFigD4rK4s///M/JzU1FY1GQ0hIiF/io7dyIWUyGSqVipycHMrLy3020YeHh5OZmckLL7zAgQMH2LdvH1VVVWLvxJXI7Ows9fX1/Od//iednZ1YrVbgymLizJkzGAwGnnzySdLS0pZ5pCsbj8dDY2MjNTU1vPjii1gsFhwOh+hFycnJ4d5772X9+vVkZ2ej0+mIiIjwmYvS4XBw/PhxDhw4QH19PQqFgocffhi5XI7ZbBYneoVCQVpamugtSExMZOfOneLc43Q6kcvlK87TIeDxeDAajczMzDAxMUFTUxPh4eHk5+dTVlZ2y98XGBhIVFQULS0tNDU1MTo6KibYwZV5RzA+V/87MDAQtVpNREQEoaGhhIWFAVBVVcX27dspLi72S6s4i8VCY2OjuCC7WeRyOVlZWWIT9pv+3O0M8npMTU3R19fH2bNnGRoaYn5+Ho/HQ2xsLMXFxRQVFbFjxw50Oh2hoaFLddg7Rog92O12oqKi+PSnP01qaipRUVHExsaKzVv95TKIi4sjNzeXyspKmpubmZ2dxWazXfO+oKAgtFqt2Dj6rrvuIiIiwmfjkkgkBAUFsXnzZs6cOcPY2BgtLS3odLoVmVC1sLDAxMQE/+///T8GBwdFFzVcWUHr9XpOnjzJpk2bCA4OJj4+fplHvHJxOp10d3dTU1ODwWAQF7wBAQGUlJRQVlZGZWUl+fn5YvNpX+Jyuejr62Nubo7IyEg2b97MAw88gEKhwG63i9dZLpeLO8KgoCCxKfdKjCs6HA5mZ2eZmJigp6cHs9nM7OwsU1NTzM7OYjabGRkZobKy8o4WczKZjKSkJPr7++nv77/uYlqlUqHVaklLSyMiIoLw8HDi4+NRqVQEBQWJhjAzM5Ps7Gyfzo1erxeLxcKFCxdob2+noaFB7Pp0s1xtHJOTk9m5c+fNfe52B/1hjEYjAwMDtLe3Y7Va8Xg8Ykr31q1bqaqqori4GKlUeo2rcLnweDwsLCwAVx50jUbDE088wdq1a33+gN+IuLg4XC4XlZWVTE5O4nA4xB2PVColMDCQiIgIVCoVZWVlfOlLX6KystIvLYPkcjlFRUXExsYyMDBAfX091dXVH5shuBxMTU3R2dnJO++8g8lkEidMAYfDwcWLFzl//jyBgYHI5XKxK3pgYOCKnECXCyFOdfLkSfG1gIAAoqKi2LZtG+vWraO8vJy4uDi/PNdut5uhoSFcLhdarZbHH3+cu+66a0Utum+E1+vF4/EwNzcHXFl0SiQSjEYjIyMjNDc3c+TIEQYHBzEYDDgcDrFkKjAwkC1bttyxx62oqIihoSF6enquWXjHxsaSmppKSUkJ1dXVJCQkEB0djUajISIiwq9eIpfLhd1uZ2BggH379nHs2DHa29tvaBxvFH4KCAggJSWF6Oho1q1b53/jOD8/z9zcnHjRhQE6HA7effdd2tvbefrpp4mOjkapVBIdHb1Uh75tJicnaW5uxu12k52dzZYtW6isrFx2w+1wOBgaGmJwcJDp6Wnx9YiICNasWcPPfvYzEhMTxToyf41XIpEQGhpKeHg4LpeLgwcP8vTTT6/IPp0/+tGPePvtt5mYmLju771eL/Pz83z3u98lNDSU2NhYNm/eTFVVFZWVlSQnJ/t5xJ8s4uPj+du//Vs++9nPEhsb69dnRtg5RkZGkpOTw86dO5f9mb1ZrFYrY2NjPP/88wDiYre2tpbx8XFsNpu4M1coFJSUlJCbmyvOT4WFhXe0U5NIJDzxxBOkpKSg0+n48Y9/LLrHJRIJNTU15Ofni0Zb+FkO2traOHbsGD//+c8ZHBxkZmbmhjtGqVRKREQEUqlUrJQQXpfJZLhcLnQ6HampqTd9/CUzjrGxsWRkZLB27Vq6u7uZn5/H6XQyPj7O1NQUIyMjDA4OUlFRQVlZGVu3bkWpVC7bifd4PAwNDXHy5Ek8Hg8ZGRkUFxcv+0NWW1vLqVOnOHr0qLiqk8vlVFRUsG3bNjZs2IBWq/V5gfVHUV5ejtlsZu/evbS3txMSEkJiYuKyjOVGCFmVAFlZWRQVFXHXXXcBVyYos9lMZ2cncOX8KhQKlEolgYGBKyIWvpJob29ndHRU/P+YmBjS09PZsGEDERERfn1m+vr6aGhooL6+nsrKStatW7fsz+zNYjAYOHHiBL/73e84e/YsXq9X9AZZrVZiYmKIj48Xs8ETExO56667UKlUhIeHExMTQ3Bw8B3/vVKplLy8PAD279+PXq8XvVMXLlxAIpGQnp4uxhaXg+npaZqbmzl48CADAwM4HA5CQ0PR6XSUlpZeM7aAgADS0tIICAjAarWK2baBgYGEhYWxZcsWoqKibmlTtmTGMSIigtTUVLZu3UpYWBjj4+Po9XosFgsWiwWj0cjg4KBYjhAREUFFRQXBwcHLktAxOzvLwMAADQ0NeDwetFotGRkZfh/H1TidTpqamjh16pRYN6ZQKFCpVGzevJlt27axdu1agoODl3WcOTk5TE5O8vrrr9PY2EhERAQajYaFhQUsFotofJxOp5hFm5iY6FejI9xncrmc/Px8qqqq+NSnPgVcCeybTCZSUlKu+VxcXNyKjKEuJ/39/WImKFyJSSUmJpKSkuIXd/7VDA0NUVdXx/j4OEFBQQQGBtLT00NMTMyicgyZTIZMJltRyWKjo6M0NTVx6NAhLBaLaPRCQ0PJzMxEo9GQlJSEWq0mISEBnU7H2rVrffLcxMTEsGbNGtatW0d9fT1jY2M4HA7OnDmDxWJhfHycpKQkYmNjiYiI8Nt19nq9LCwscOnSJS5evEhbWxszMzMkJyej0+koLi4WayyvJjAwkJSUFBQKBRaLRTSOghrbpk2bbnlRsWR3TmhoKEVFRRQVFXHu3DlOnz7N4cOHOXv2rLiL9Hq91NXV0dbWRm1tLb/85S9JT09flqLxjo4OTp8+zfvvvw9Aeno6xcXFfh+HgMfjwWw209rayuXLl0VXh5AU9Mwzz6BWq1fExF1cXIzL5SI0NJRf/vKXzMzMsGbNGsbHx2lsbKSpqYmamhpMJhNarZZPf/rTfPOb3/T7SlQikRASEsKjjz5KRUXFNWU4mzdv9ut4Pol4vV4uX77M0NCQ+FpMTAxJSUnL8ty2tbVx4MAB4IrRdjqdHD16lEceeYTo6Ggx8zQsLEzcba0U6urqaG5uZnp6GqVSyY4dO9i0aRPFxcUUFBT49fmQyWRER0fz/PPP86//+q8cPnyYwcFBfvGLXwBXdmI7d+7k0UcfpaqqioSEBL+My+FwoNfreeGFF2hra0Ov1wPwuc99jgceeICNGzfe1PcUFhbe8Vh8sqwqLCwkMzOT3bt3U1dXx+joKF1dXbzyyisA2Gw2+vr6+OY3v8mePXu47777/O6W27t3L3V1dUilUrGQ/eqUbofDwczMDBaLhaioKFQqlU/H43A4eO+99+js7MRsNouvT0xMcOLECb74xS+Sk5ODTqdDo9EwMDCARqPh7rvvJisry+8JJAkJCfzN3/wNL774Iq+//jqnTp3CZDIxPz+P1+tFo9EQFRXF1NQUP/nJT0hLS6OiooKsrCy/jVFYhUql0lVX6W2wsLCAwWCgtrZWdEEDmM1ment7ee+99ygoKCA6OtrvCx+n08np06fFneHhw4cXXWdBEECr1VJaWkpKSgqZmZlkZGQsS7KV1+vFarWK3oyKigp2797N1q1bF2WA+hOZTEZaWhr/+I//yKOPPsrbb7/N8PCwmFh5/Phxurq6+PWvf83u3bt54IEHfJ5f0N3dzXe/+10uXbqEUqnk3nvv5Z/+6Z9ITEz0aTb+9fCJcQwODiY4OBiVSoXH42FqaorExERaWlrEbFaHw0F7eztnz54lMjKShx56yBdDuQa3243NZqOrq0tM1pDJZExNTdHe3s7w8DBmsxmbzYbNZsPj8VBeXk5JSYlPk4iEZJegoCDkcrm4c3Q6nczMzNDc3IzJZCImJgaVSoVer0elUjE2NkZOTg5lZWViHMEfREREsGXLFi5evCgqbgQHB5OUlIRGoyE/P5+pqSk6OjpEibHlcFu73W5xUlrl1hDE5aempsSYFCBe171799LV1UVMTAxRUVFs3ryZ0NBQv9QNCqLjMpkMpVIpelTcbje9vb2EhIQQEhLC0NAQer2e+Ph4kpOTue+++0hKSvLbjtLtdmMymTh16hTnzp3DYDCQkJBAXl4eGo2G0NBQv7umryYwMBCtVktISAg2mw2j0Uh3dzeJiYk0NzczMzNDd3c3Bw4cYGpqipycHEpKStDpdEu+yLBYLExMTNDe3o7NZiMwMBCz2UxjYyOXL18mMDAQlUqFTqcjKiqKyMhIn4aYfOqQl0qlpKenk56eTnJyMuPj47z88suMjIxgtVoxGo2cOXMGt9vNgw8+6JfVvcvlYmpqisHBQYxGI16vF6/XS29vL06nk7feeouenh4sFgsASqWSL3/5y6hUKp8aR7lcTnZ2NikpKQwODl6TZWmz2eju7qa7u1tMB/d6vRw8eBCtVss3v/lNUZLPH4SFhbF+/Xr0ej3Nzc20traSkJBAcXExeXl5lJaW0tnZyf79+6mpqWFwcHDRjtjXyOVyZDIZdrud6enpRVnUq9wcwn3mdDoXKajo9Xr0ej2XLl0iISGByMhIMU6WmprqU3erXC4nKCgIpVKJUqkkMjKSjIwMNBoNcCXZymQy4Xa7cTgcjI2NMTQ0hFQqFXdnd999N+Hh4X7ZrTkcDrq6uvje975HS0sLSqWSnJwc0tPTkUqlTE1NERsbu6yeDZlMhlqtFmPyQ0ND1NfX89Of/hSTycTc3Bw1NTW89957lJWV8Zd/+Zdi15WlTIYym80YDAamp6fFMFN7ezvPPfcccEWgJSsri23btpGdnc2aNWuIjY0lICAAmUy25Jn7fotWq9Vqvv71r6NWqzl48CBvvPEGgNjRYXh4GI1G4/PJ3eVyYTabMZvN2O12vF4ver2eX/ziF2IasKACYbFYmJ2dpampiYSEBNauXeuzzDi5XE5BQQHf/e53GRwc5IMPPiAmJgaPx4PNZhOl5FwuF0ajkYmJCcbHx+np6WF8fJxf/OIX9PT08L/+1/8iNDTUL64jiUTC/fffz7333ovH40EikYg36fUedn+KzG/YsAGTycQ777zD5OTkopKYVW4OwaCoVCqMRuOi3aPA+Pg4k5OTdHV18ed//uf8zd/8DY899pjPxnTfffdRWlpKTk6OWGZw9aTo9Xr5j//4D+DKztdisfD+++9z/vx5jh49yne+8x1qamrYsmULzz33nM8Fs5uamjh69KiY+OdwODCZTJw7d47s7GxKS0v5u7/7O5KTk1dEPgGATqcjISGB++67T9Rafe2113jjjTdobm7mr/7qr0hJSSE7O5uoqKglO25iYiIFBQVUVVWxd+9e5ubmcDgci+ZcofuPkAQYHx/Ptm3bqKioQKvVkpCQsGTn7oJXhQAAIABJREFUUSbU29yAj/zlrSBMnCEhIczMzFBfXy+qwUskErKyskhISPB5Ia9wg54/f575+XmsVisajYbo6GgSExPZvHkzBQUFhIaGMjAwAEBKSgppaWls3rzZp2njEolErHuKj48nMzOT1NRU0tLSRDWK7Oxs8vLyKC4uJj8/n/T0dM6dOyfeSI888ggKhcJvcRWhjkgul4v99IRz9O6773Ly5Ek6Ozt58sknKSws9FsrK6fTidPp5Pjx40ilUiIjIykrK1uqifCFpfiSZeD5W3mzVColICAAl8uFRCJBr9cTFBQkZom63W7Rg+HxeHC5XGzatOm2pM1uloCAACIiIsSyG0HX9+qfq8UchPBOTEwMYWFhdHd3i6LblZWVhISE+NQNbLVaRe3Zhx9+mJ07d1JZWYnNZmNmZgaHw8FDDz3k9wL7j0JYcAQEBKBQKESR9pmZGRYWFhgeHmZiYgKXyyW6N5fquHK5nOjoaFGZx+VyoVQqcblcLCwsiPeZ0BVIKBMUdH6TkpIIDw+/1Xn6us+z369GWloaWVlZJCUl0dHRIa6kGhsbKSsr8/nkKZPJCA8Pp6ysDIlEQnBwMBkZGURGRhIbG8vatWuZnp4WC3H9jUKhEMsfPgqPx8P4+LhoCKenpxkZGRGbuS43QpZjd3c3ISEhFBQU+FUsIDk5mby8PKKiouju7qajo4Px8XG/l5R8kpFKpYSGhrJ9+3akUukiNRW73U5/fz9Go1FUmRIWaL5EyGe4GSQSCQEBAWRkZKBUKgkODubkyZNieMJkMonuWF8RFRVFVlYWn/rUp8TSNavVSltbG2NjY5hMphXd7kkul6NUKikrK6OhoQGj0UhTUxP79+8nMjKS3NzcO+puY7fbWVhYEHMtlEolmzZtQqFQkJCQICZC9vT0YDKZxM4idrsdq9XK3NwcExMTdHR04PV6KS0tJSIiYkmSd/xuHGUyGTk5OXzpS1/i29/+tthB/vjx435JygkICCA2NpbnnnuO0dFR+vv7RfeA8ND90z/9E8PDwz4fy51gtVppaGjgO9/5znW1V5cTQX1mcnISl8vFmjVryM3N9asqkkajYc2aNWzbto0//OEPnD59mpdeeolvfetbhISEfGIKx1cC+fn55Ofn8+yzz4qvjY+P89Of/pSXXnppUXzc4/HgdrtXnPyeWq3mrrvu4t5778XlcjE4OOiX48bGxhIbGyuWFszNzWEymWhra2N+fp6YmJhPTGeY+Pj4RRKBZrOZwcHBOyqJam9vp6enh8LCQuLj48WQVlVVFVVVVeL76urqGBwcxOPxMDg4SHNzMydOnMBsNuNwOJibm+Ptt99Gp9MxOzt70xJxH8Wy7OPlcvmiCcrlctHb20tTUxNKpZLMzEyfjyEgIEDUDby6yanT6WR4eJjJyUngykq1uLiYe+65Z0XdwFNTUwwNDdHW1obT6RRFdf0Vb/wopqen+fnPf05jYyOxsbF84xvfWBbdy4SEBP7hH/6Bqakpuru7+c1vfiO6zf1Vt/XHSnBwMIWFhYt2cQsLC9TV1REfH8/nPve5ZRydf1lYWOD8+fP8n//zf/i7v/s7MjIyrusBE5qWnzx5kv7+frRaLfn5+ahUqhXjUr0eggzo5cuX6ezsFLWxl8JDdeTIEV555RWCg4PZsGEDJSUl7Nixg/j4+EWiDvn5+aJdEPSmjUYj3/ve92hqahLrcEdHRxkbG7vjccEyGUfBpy3gdruZm5vza1ahRCIRXZgCgj99ZGSEqakpJBIJhYWF5OTkkJSU5JdxfRxCgs65c+e4ePEiFouF0NBQlEolUVFRyy5/ZrVaGR0d5cSJEywsLBAXF0dxcfGytAUKCgoiKysLjUZDb28v4+PjdHV1kZiYuGoc7xCFQkF6ejoJCQmYTCZmZ2fxer2YzeYb6tkuJx6PB7vdzsTExJJ7Wi5cuMDp06fp7u7GZrMxNTWFzWZjfHwct9stGhGbzUZnZyd1dXUkJiZSWlpKeXn5ijaMgNjkvLm5mZGRkSX97oCAAKRSKU1NTbjdbgwGA1arlaKiokUlOsJ7o6KixJZpcKX8Q3DrwxU37VK59pflqggB/KtZWFhY1CPOl8e+0Q7QarVy+vRpOjs7MRgMBAYG8vDDD1NRUeFTl6BQTnIzRk0w4K+88goNDQ1IJBLUajWxsbGicVyuHa7X62V8fJyWlhZOnjxJdnY2OTk5aLXaZdvNyuVyVCoVISEhYiPuoqKiZRnLJ5Wre/wJBAcHs2bNGvLy8kTjKLCSPCwCCwsLmEwmmpqamJiYWNL78Wc/+xnNzc1in9qxsTH6+vo4ePCg2LoPrjQ6MBqNmEwmvva1r1FdXU1BQcGSjcMXeDweDAYDP/zhDzl9+jRGo1FMrhR+7oSSkhIefPBB/uVf/oWWlhZaWlp4++23uf/++0X5OoGIiAjKyso4f/48BoMBo9HI6dOnRWN4dbb8UnDHxtHr9TI7OytmLH5cGq3ZbObSpUu88cYb4h8llUoJDg4mPDzcp73Benp6mJ+fR61Wo1arF11Yj8fD5OQkL774Inq9HrVazZo1a3j00UdRq9U+G9Pc3ByXLl2iu7ubhx9+eJGL98OMjIzQ0dHBj370I5qamsS6QaHP2549e5Zt1+j1ekXXZU1NDQB/8Rd/wZYtW5bdzVtRUYHBYKC1tXVZx/FJw+PxMD8/T11dHcHBwcTFxZGamopEIsHlcjE9Pc309LS4ExMWaiuxo0lPTw9vvvkmzc3NzM3NLWkiTnR0NG63m5MnT7Jr1y5x8f/hprxCjeMTTzzBU089tSjPwZ+YzWbcbreYxX0j5ufnefPNN9m/fz/vv/+++PdIJBKqqqrYvXs3u3fvvqPF0Lp164iPj6e+vp6LFy+KTecFxaOr5w7BTszPz+N2u8VaVrjiycjOzubJJ5+koqLitsdzNXdsHF0uF8PDw3R0dGCz2USpNaFZsKAAITQVfu+99zh16hTd3d1iRqhcLictLY20tDSfZjQODAwwMTFBdHT0Nf3fZmdnGR8fZ2BggIWFBTIyMrj33ntRqVQ+U7Dwer38/ve/p76+ntHRUXbt2nXdMgyPx0NHRwfHjh3j/PnzNDY2iu5nhULBunXrWLduHTk5OT4Z583gcrk4ceIELS0tWK1WvvjFL4q9H5ebVfm420No/fPWW2+JLvKNGzei0+lQKBQMDg4yNDQkLtLkcjk6nY41a9b4bEyjo6NMTEwQGRlJTEyMuBgXSogkEsmi8pKFhQUuXLjAuXPnOHz4MHa7naSkJIqKikhMTFwSIYDq6mrCwsIWSUwKur7h4eHI5XIsFgtFRUWkpqaSmZmJWq1elhCI1+tl//79KBQKtFotGzZsuMa4CcIZR44coba2lsbGRux2u5j9GxwczP33309BQcEd1xQqFAo0Gg2PP/44a9asobe3l5aWFkZGRq7rHrVYLIu8jkIf3tTUVB599FFyc3OXTGbujo2joGQgTPARERHExMSQnJxMeno68fHxhIeH4/F46OrqYu/evVy+fFkMmsrlcsLDwykuLiY9Pd2nu7Senh4x5rR+/XrROAqB8q6uLgwGA0qlkrS0NO6++26fqmi43W7ee+896uvrsVqtzM/Piw+T0+nE4XCwsLCAzWbj9OnTvPvuu9TV1TEzMwMg1nFt376d8vJytFqtz8YqcD23tMPhYHp6muPHj4uLjz179pCenr7sDWg9Hg+zs7Oi4hGsTLffSkSQWqytrcVkMhEVFYXBYKCgoACVSkV3dzdDQ0PMzs4ikUhQKpUkJyf7VCZwcHCQ8+fPEx8fT2pqqjgRBgUFiS41h8OBy+XC5XJhtVrFZ+zChQvI5XJyc3OpqqoiPj5+SeJ9mzZtIj4+fpG+rFQqRalUotFoCAgIwGAwUF1dTVRU1LLoqMJ/xV33799PVFQU5eXlrF+/XkyuEaQWDQYD/f39vP3224uSXYQyuPT0dLZt27YkHgKJREJ4eDi7d+8mNzeX1tZWgoKC8Hq9okiLEG77cHmdUBOZn5/P2rVr+cIXvkBYWNiSearu+M5QKBRs3rwZhUJBfX09b731FpcvXxaLX4uLi0lISMDtdvOHP/zhmlhjYmIiJSUl/PM//7NPDSNATU0Nzc3N/MVf/IX4mpBE8OKLL/Lmm28C8NWvfpVt27ZRWlrqs7EIq/Lu7m6MRiMBAQHo9XqUSiVut5vOzk6OHTtGc3MzFy5coKur65p4bEhICJmZmWITaX8wPz+/SK7J4/FQX1/Pa6+9Rm1tLV/+8pf57Gc/69NC8JvF6XRiMpnYu3cvFy9eFB/E5UgO+iQiFIJHRESg1+sZHBzk5z//ufg7YYcmJLft2bPHp7tGuKI489JLL9HT07MoFpqenk5ERARBQUFik3ChcbAw+UskEoqLi9mzZw+PPfbYki2SIiIiKC4uvmEs++rjLydTU1PU19dz8uRJ1Go1crmcJ554AqlUit1uZ3BwkN/85jc0NDTQ2NiIwWAQ8yHgimTkpz71KX7+858v6Y5X0JVeu3YtRUVFfOYznxHnu4WFBdEjJVQQwJW5LyYmhqeeeorMzEyfNNxesoQcISuwtLSU2tpaTp8+zZkzZ+js7BSVZgTLL2SrpqWl8eCDD7Jz506xH5svcDqdtLW1iYLibW1t9Pb24vV6xRVSQ0MDcEV2rLy8nPT0dJ+MRUAIHgvFr1arlX/4h39ApVIhkUgwGAxMTEwwNzfHzMyMqG0pSHqtX7+esrIy7rnnnmt6m/mCzs5OGhoa2LdvH/n5+SQmJhIeHk57ezutra1cuHCBnTt3smnTJr923rgRVquV3t5eXnzxRVpaWpDL5axbt44HH3xw2ft2flIICAhArVbzta99jdraWmpra8XEm6tX8UlJSWzYsIEnnnjC51ndQv2q0CNWEJQfGRlBLpcjkUiYn58Xd45wZQGs1WopLy/nmWeeEaXnlpqP+s7lNowfZmRkhFOnTvG73/2Ovr4+hoeHGRwcpL+/H7PZLGYfw3+5Pr/61a+yZcsWn7qC5XI5oaGhZGVliYuvxMREdu3atcjNKpPJCAwMJDk52Wd1y0tmHAUh4KSkJFwuF0FBQUilUnp7e9Hr9eJDJSTdqFQqNm7cyKZNmygpKfG5q8Hj8Yipwd3d3Rw/fhyHw0Fvby+HDh3C5XIRExNDVVUVmZmZPt+JCf77nJwczGYz3d3dnDp1SjwPNptNTFG+2pCGhYWRkZHB1q1bKS8vZ+PGjX5R9Z+ZmaG3t5fa2lpGR0dJTEwkLCyM/v5+ZmZmCAkJobKykuzsbL+3loErk7WQ8SyTyWhpaeH8+fMcOXIEl8tFSkoKGzduJDs72y+LiT8GhASITZs2ibJd7e3tYixvYmIClUpFVlYWGzZsIDs72+f6oDqdjo0bNxIUFERPTw9Go5GZmZmPVLUSDOr27dvZsGHDsjcLXy6kUqnofrbZbAwODnLo0CE6OzsZHx9nYmJiUdJNeHg4Go0GjUZDZmYmd999N9nZ2T4fp0wmWzSHLEffUADJxxRy3naVp9Bq6eWXX+att96ipaUFj8dDUVEROTk5rF27lscee4yoqCi/Ce5+//vf58CBAxw7dmzR616vl/j4eNauXctLL73k013sh497+vRpXn31VV599VVRXPzq38N/yXhptVpycnL42te+RllZmV+N0MWLFzl8+DDPPffcIvducnIyxcXF3H333fy3//bflq39zuzsLJOTk4yPjxMWFsbzzz/P+++/j9PppLq6mq1bt/LII4+QkZGxFCvflbUNuHnuqGrbbrfz8ssv43Q6mZyc5LXXXmPLli1UVFSwc+dOMjMz/ZJg4vV6mZmZ4eTJk1y6dIm6ujpOnjy5KK589XsFTdM9e/b8SbvUrVYr/f39PPjggwwNDV2T8HK1+1cul5Ofn8/nPvc5tm3bxtq1a5dp1H7hus+zz4wjLE6GEFYkCoWCgIAAcRe01G1GPorR0VGxN9nvf/97QkNDyczMJD8/nw0bNpCTk0NCQoJfSw8EX39nZydnzpxhcHCQgYEBzp07R2RkJIWFhVRVVbFx40YSExOJiopCqVT6XY9RSAyamppaZMDlcjkKhYKQkJBl2TEKtLS08Oabb/LrX/9aTICQSqWsW7eO5557juzsbCIjI5dqcvyTNI5C2RZciZlbLBZRiNzXAt4fRkgucTgc2O127Hb7NfkMAmFhYWLm6J8ygi7p+fPneeedd9i7dy9DQ0OLnudHH32UwsJC8vPz0el0xMXFoVKpli2JyE9c93n2eT9HlUq1KMV5OYmJiUEmk+HxeFCr1aIvXafTkZaWtix91YKCgtBqtYSGhhIeHo7RaMRoNLJx40bCwsLQ6XTk5OSQmZl5jWKEPxG6HKyUa/lhBLdzSEgIBoOBxMREUlNT+cxnPkNWVhbR0dHLXm/5SUfISBXwp1buh5FKpWJD41VuDqHrT25uLna7HbVajclkWrSo2LBhAzqdDq1WK843K13Bx1f4dOe4yir+YmhoiNOnT1NbW8ulS5coKSmhvLycL37xi0velJU/0Z3jKqv8keJ/t+oqq/gLoehb0LIUMqJ9tOpdNY6rrPLHw6pxXGWVJWLVOK6yyh8P132eVzW1VllllVVWWeVDrBrHVVZZZZVVVvkQq8ZxlVVWWWWVVT7EqnFcZZVVVllllQ+xahxXWWWVVVZZ5UOsGsdVVllllVVW+RB/mtIHf0R4vV4uXrzI/Pw8UqlUVNLxp8bpyMgITU1NnDx58pq2WnBFmWPz5s2kpaWh1WpRqVR+lQ1cZZVVPvl4PB6sViuhoaGikpnT6WRqagqDwcDly5fp7u5GpVJRXV1NTk7OHdU5+904er1eLBYLer2ewMBAlEqlqLG6HAh6g3Dl5AvtbpxOJ/Pz89f9jFwuJygoSJSj8wdutxun04nL5RI1Ll0uFx6PhxMnTjA7O4tMJsPpdJKbm+tXuTSDwUBdXR0//OEPxRZCVyOVSjEajZSXl1NYWEhOTg4qlWpZRMqFjhLCNV9YWBB1YxUKBcHBwQQHB6/Kki0Bwv16tTyZRCL5kz23TqcTu92O1WrFZrPxMTXmotxbYGDgovlR0DL+U5JDnJubw2KxYDKZiIuLE+e66elpBgcH6evr49ChQ5w9e5b4+HiCgoJITU29I+PodxEAu93Ob37zG5566imys7N59tlneeyxx5ZFtNrlcmG32+nv7xeV/o8dO8bw8DAdHR2cOnXquk1KNRoNVVVV/PCHP/R5g2a4YsDHxsbo7e1lfHycubk5fvnLXzIyMoLH48FgMOB2u5FKpSQlJfH8889TWVlJYmKiz8cGV3o9HjlyhL/+679eZByvbkYr/DciIoK///u/57Of/azPe2ZejdfrxeVyMTc3R3NzM319fUgkElpaWrh8+TJHjhyhqKiIqqoqduzYwbZt2z7qwfqkbnn9KgLQ3t7OxMQERqNRfE2hULBr165lWwwvJ8Kcsm/fPmpqasR+kzdCoVCQn59PZmbmIk3jiooKduzYQXx8vK+HvGL42c9+Rl1dHU6nkzVr1mC32xkYGODo0aOYTCbm5ubE+UbQgG5qarrZc+R/4fGr8Xg82Gw2/vM//5MPPvgAj8fDyMgIe/fuZXp6mm9961s+H4Ner8doNDI6Osq5c+cwmUyYzWY6OzvFyXNqagqHw4HVahVPdlxcHPHx8cTExABXjGNlZaVf+sL19PRQV1dHbW0tw8PDTE1N4Xa7GR0dFQ2RsDr3er0YDAYGBgbIyMjwm3F0Op2Lbk4BYQIUXvd6vczPz/P6669TUVHhU+O4sLDA6Ogov/71r5mdncXhcDA/Py/2nxTc0BaLRRz7/Pw89fX16PV68vPziYmJWTah908K/f39TExMMDIyQnd3N263WzyPFosFh8OxyNUeEhLCyMgI99xzj18XR9fD7Xbzu9/9jtbWVvR6PUlJSWzevJmqqqolPY7ZbObcuXP89Kc/paenB4PBQFlZGYWFhURGRnLx4sXrfk4QV5fL5djtduRyOXfddRc5OTmEhoYu6RhXMjabjdbWVtFDdubMGfE+m56eFr1pAi6XC5vNdsMuLTeL34yj0+lkdHSUM2fO0N7ejkQiwWKxMDAwQGtrKy6XC5lM5pM4lNvtpr+/n6amJoaHhxkeHqahoYGpqSnm5uYYHh4GrnQ+F5q3hoaGimOJi4sjLi5O3CWqVCoKCgp87hacnJykpaWFmpoaTp06hclkwmq1ir+/+oaQSCRiH7aQkBC/NnQVduACCoWCjIwMwsLCRKMjIJVKUavVPj93Y2NjXLp0iUOHDjE3N4fD4cDhcIgd4wW3eGRkJPHx8QQHB5OamkpAQADh4eGrMdEPYbVaxXZVMzMzzM7OYjQa6evrQ6/XMzIyQl9fH263G7vdzoULFxZ9XqFQEBkZKbaE8+XO0ePxMD4+jsFgYHJyUuzeERYWhslkwm6343Q6cbvd1NbW0tbWhl6vp6CggOTk5CUdi9lspre3l5qaGi5evIhCoaCsrIzy8nLy8/OJjIwkNjb2pr5LJpORl5dHfHz8H3sLKRGv18vCwgImk4nR0VGsVisTExOL3hMUFERERASJiYniBsZut9/xHOM342i1Wjl//jwtLS2MjIyIr9vtdrHnY2hoqOjKWsqJyWaz8frrr/PWW2/R1dWF2+1e1DVcIpEQEBCAUqmkvLycF154gczMTHEsMplM/PEXXq+Xs2fPsm/fPn7729+K47wewusymQytVktZWRkFBQV+G6uwihOIjIzkqaeeIisrC4/HIy4+4MoCJCMjw+cdxc+cOcPBgwc5ffo08F+LB6lUSnR0NDqdjurqagoKCkhISCA+Pp60tLQ/2fY8H4XX62V4eJimpiYAzp8/z6VLl/jggw9u6vMSiQS1Ws369evZtm0bTz75pE+N4/z8PIcOHaKmpob9+/eTlpZGSkoKubm5HD9+nLGxMaampvB4PKKRlEgkxMbGXrdh8p3Q0dHBBx98wH/8x38QHx/Pgw8+yLe//e1F/Virq6uX9Jj+5EZhuaWcv91uNzabTdwYXP3dEokEjUZDeno6jz32GNXV1chkMi5fvnzH/Tv9NhM4HA56enpYWFhY9PrExAQnTpzgM5/5DPfffz/JycmEhYWxdevWJXNpKRQKduzYQVFRkRgI/9//+38zMDCAw+Hgb//2b0lNTSUxMZGioiKUSuWixq3+3kGYTCaOHj3Ka6+9Rltb20e+VyKRUFlZyczMDAD/9//+X/Lz8/0xzOuSlZVFRUUFjz/+uLi6vTq2Iuxufd0Y9/z58xw+fBiA4OBgsrOzqaqqorq6mqSkJGJiYggPDycgIEBc+KwaxusjhEKOHz8OXPECXS8rWSA4OJiqqiqysrLQarVkZmZSVFREWFgYQUFBPjOMCwsLzMzM8PLLL7N//35aWlqYn5+nq6uLvr4+Tpw4gcPhWLQ4VqvVqNVqMjMzefzxx5d8UTkyMoLBYCA/P5/nnnuO4uJigoKCPtFeCa/XS3NzM2azeZEn62pSUlLIy8tb0uMKbuaqqiqSk5PRarWUl5cTGxtLZGQkkZGRKBQKJBIJcXFxd2w//DIb9Pb20tzczKlTp7BYLKjVatLS0rDb7YyNjTE9PU17e7u4qg8KCqKtrY2IiAiUSiX3338/wcHBt71zk8vlJCcno9FoxIdCpVIREBCAy+UiNzeX7OzsRa7T5cJutzM+Ps6xY8dob29ncnJSTAqKj48nMTGRwsJCoqKiRAOTlZWFzWYDWPZ4RGhoKNHR0URERCzrBLBhwwbMZjO/+tWvCAsLIzs7m127dpGdnY1KpSIkJORPMinkZhkeHqa/v59Tp05x/Phxurq6mJqauuZ9arWa6OhoEhISCA8PF0MQ2dnZxMbGolKpiI2NFd2pvkKv19PX10dTUxOHDh1iamoKjUZDYWEhk5OTYha6gEwmIzY2ljVr1qDVaklKSqKoqEh0yy0VBoMBg8FAeHg4qampxMbGrkjDKGTtDwwMMDc3h9VqZX5+nomJCaanp695f19fHxaL5brZ6QA7d+5cEuPodrsZGBjAYrEQERHB5s2b2b17N1qtlsjISJKTkwkNDSUoKGjR/bUU95rPjaPL5RJv2FOnTuHxeEhLS+Pee+9lenqa+vp6WltbcTgcNDQ0iO6v06dPi0a0qqqKwMDA2/6DpVIpcXFxi14TjK1UKiUxMRGdTresnc0FZmdnGRoa4vjx4wwMDCy6+XQ6HevWreMLX/gCmZmZYr3PStrxBAcHL4rXLhfbt28nNDSUX/3qV2Ic+e67717WMX1S8Hg8tLa2Ultbyw9+8APgijv86pIr4TnNy8sjOzub0tJSNBoNBQUFy5KF3NPTw/Hjx9m/fz+NjY2kpKRQWlrKF77wBdra2pienl7kMg0MDCQvL49NmzaRlJTkk2x5j8eDXq9nbGwMuHLOhN0tXImVBQQELPsizePxYLfbMZlMnD17ltHRUYxGI1NTU1y6dInBwcFrPmO1WheV6UgkEtEDExgYiFarXZKxud1uWlpaMJvNqFQqdu3axQMPPOCXudqns6rb7aaxsZFf/vKXvP/++7jdbhQKBWvXruW///f/DkBTUxNtbW3iDSQQFRVFUVERpaWlK2ry9zWXLl3i+PHjdHR04PF4FhkZhUKB2+3mwIEDpKeno9FoiI+PJzc390/qHN0MRqNRDNzn5+eTlpa2zCP6ZOB2uxkfH+ff/u3fOHLkiPj6+vXr+fSnP01cXBxSqZSAgABxZ3a10fT3RD83N8fly5f5l3/5F1paWhgdHSU/P5/Pf/7zVFVVUVJSwqc+9Sng2viYkHTli4Wcx+PBaDTS3t5OQ0MDFouFZ599VgzZyGQyHnnkEbZs2YJGo1ny498Kg4ODNDY28v3vf5/W1lbRCyVkwH9cPSb8lwchOTmZHTt2UFFRsSRjm5+f5yc/+QldXV0kJyfz0EMPLSpr8SU8mkaVAAAgAElEQVQ+m1FtNhuTk5P86Ec/EuNmYWFhfOlLX2Lbtm3iLjAjIwO1Wn1NwX1gYCCRkZE+nfTDw8OJiYkhKSlpxaRGt7a20tjYeN005I6ODsbHxwkMDCQsLIywsDDUajVbtmxh3bp15Ofn/8lksX0cXV1dtLS0AFBUVLTsZQOfFKxWK6+++iqDg4MoFAp0Oh1/9Vd/RXZ2NlqtVozjSKVSgoKCCA8PX7Zi9PHxcTo6Onj99de5dOkSRqMRmUzG7t272bhxI+np6cu2K3M4HNTU1DA4OMj8/Dxer5euri4UCoVYwG40Gjl06BCbNm1ix44dqNVqv51LQYzlV7/6FY2NjfT29tLR0YHNZsPtdiOXy1EoFKSlpZGYmIharSY/P/+GO+yIiAjCwsKIjo4mLi5uSXZ2DocDs9nM9PQ0CoWCsLAwMbkvODiYwMBAn9oHn3yz2WxmeHiY1tZWjh8/ztTUFGFhYeTm5rJ9+3aKiorE9yqVSpRKpS+G8bEI6eXLpdZyPfR6/TWpygJC/EIgMDCQiIgI0V0UFhZGZmbmsrpphNXmcjM1NSWeR5lMhs1mo7+/H51O57OSoT8G3G43w8PD2O12pFIpCoWC4uJiMjIyiIiIWDHPCVwxjq2trZw8eZLJyUkcDgchISEolUrsdjuTk5PY7XYCAgIICgry6wJ4YWGBCxcuiAIIKpUKjUYjhnMuXrzI9PQ03d3dzM7Okp2dTXBwsF/mQq/Xi9FopL+/nwMHDnD58mX0ej1wZcOgVCqJiooiKiqK7OxsUlJSiIuLo6ys7Ia7tqCgIFFhaqlwOBxi2ZAgHXfmzBlyc3NRq9XExMSg0Wh89iz7xDiePXuWgwcPsm/fPsbGxggNDSU7O5vvfOc7lJWVERYW5ovD3jJChuKH5Zk+KTgcDgwGA++99x6Tk5P09/fzP/7H/yA4OHjZ/h6PxyMW5S6nAXI4HGK89tChQzQ3NxMTE8MLL7wgJmOtci0KhYLq6mrOnj3L0NAQLS0tvPTSS2zdupXq6moSEhJWzMKipaWFM2fO0NnZKb62sLDAa6+9Ji58BaWo1NRUiouL/RJ+cLlcWCwWzp8/j8lkIjw8nA0bNvDss8+SmpqKTCZj586djI2NMTo6yptvvklhYSHAkrkjPwqHw8GxY8f47W9/S01NDR6PB4VCgUajoaSkhPXr17Nz504KCwuXdV602Wzo9Xqmp6dxOBzo9XqeeeYZNm3aRHFxMZs3b+bBBx/02YLNJ3eKXq9ndHSUyclJPB4P9913Hzt37qS8vNyvxekfh91uR6/X88Ybb1BSUoJSqeTUqVNkZWURFxcnZtj5czIoKChgbGyM1tbW6/4+IiKC6upqMabW09MDXHHHzszMUF1dTXl5+ZJn3d0sly9fxuv1YrfbF9Vy+Zu5uTnMZjMADQ0NYvnI2NgYmzZtory8fMmVUP4YCA4O5p577uHIkSPMzMzQ39/PO++8w5kzZ/jtb3/LM888Q2lpKQkJCcs9VEpLS3E6nbS3t9PR0YHD4cDlconudJlMxrlz5wgMDKSgoICHHnqIjRs3otFofCpX2dTUxOHDh2ltbSUxMZHy8nK+9a1vodPpUCgUOBwOSkpKRE1foTQiOjqapKQkYmNjfepera+v5+jRoxw9ehSPx0NkZCQFBQV8+9vfJiUlZdn1rgWio6PJzc0lNTWVkZERXC4XSUlJpKamYjQa+clPfsLg4CA7duygpKRkyY/vE+MoCA4LNY1CbGKlxPXgypiEoPmBAwfo7OwkNDRUjPlFRkaK9U86nY64uLg7Liq9GXJzc7HZbAwNDWE2m8WknMLCQgIDAwkPD6eoqIiZmRl6eno4duwYPT094i6yu7ubvLw8vxrH8PBwUlJSkEgk2Gw2Zmdnl921GhsbS0ZGBjMzM6IqysLCAhcvXsThcDA7Oysu1pZ7ElhJCPq327ZtIzIykra2NpqamkSpxXfeeYfJyUkKCgpYt27dso41Pj6eNWvWsHXrVqKiokR5yPn5eTweD263G6PRKJZwCKUmgqKKL3A4HHR3d3PixAmsVis6nY68vDzS09MJDAwUE4DuvfdeYmNj6enpYWxsjMnJSU6ePMnMzAwPP/wwarXaJ/Ol1+tlYGCAsbExUfFIJpMRFBREbGwsWq12xeQtCIpl9957r6gfHRcXR1ZWFnq9noWFBcLDw7Hb7UxMTOD1elGpVEu2KPeJcQwICEChUBAUFCQGVfV6PU6nE7lcviLcMpGRkQQGBjI9Pc2+ffuu+b3gFvzMZz7Dtm3b2LBhA7m5ube9ovuwCPeNKC4uJjExkeDgYHp6ekQZpK997WvXiBO0tLQQHBzMG2+8wfT0NB6Ph7a2NiorK9FqtX4L7qvVakpLSwkICLhh3ZO/ycnJAUCr1XLp0iXRPTMwMMCxY8cYHBzkK1/5ypIUC/8x8tBDD7Fjxw7a29v513/9V1paWhgcHOTVV1+lpaWFzZs3k5eXJ5ZYLUdSjqB9GxgYSH5+Pm1tbVy6dEmcKJ1OJwaDgbm5OUZHR3nvvfcoKysjLi4OnU7nkzHNzMzQ0tLC0aNHCQgIIDs7+5pEuYCAAJ544gk2b95MT08Pp06doqamhtraWt566y3S0tIoLS0lOTnZJwu3kZGRRbWLguTf2NgY8fHxeL1eZDLZigg9hISE8PTTT+NwOIArbv+IiAiGhoaIiYlh06ZNYimP2+0mKysLlUq1JEILPunK4XQ66e7upq6ujmeeeQaPx0NSUhJf//rXeeSRR3waRL1ZhoeHOX36NAcPHrzu7ycnJ7l8+TImk4mgoCCSkpL4wQ9+QHFxMVFRUbd8PKGbRlZW1se+V6jdujpjVVh1Xo3H48HhcHDkyBFOnDjBmTNnuHTpEk8//TTbt29n+/bttzzO20FYua1bt47p6WkyMjJoaGjwqRrKx+F2u/F4POIOQujI8Zd/+ZdcuHABq9XKN77xDT7/+c+TlJR0q1+//Ku72+OWn2e32y3utMfHx/nVr35FbW0tvb29BAUF8cwzz7B161a2bdvmi/He9BiF6yxcc7jiWq+rq+M73/kOnZ2d2O12du/ezeOPP86uXbuWfBxer5cf/OAHvPfee5w/f57Pf/7zfPnLX6akpOS6u7Gr78/Ozk5qa2v5/ve/j9Pp5IknnuCLX/wixcXFSz7Oc+fO8bOf/YyXX34Z+C/VquDgYHJzc8nLy2P9+vX82Z/92YpIwPpw5r5EIhHPm1wuF9v5GY1Gurq6kEgkJCcnk5KScrMx5us+z7Lnn3/+oz70kb+8EcKqIzQ0FJPJhM1mY2pqCr1eL4rm3o6BWUoUCgVKpZLU1FRKSkqu+SkuLqaiokLsJjI1NUVWVhbp6em3lVF24MAB3nnnHcxms7jSvlH8VSiolcvl4s/1FhOCJmxoaCiTk5MMDAzQ3d0NXDGmlZWVNz2+2dlZ8bi3iuAqOnbsGFarleDgYJ566qll9RJIpVLxHAYEBIh98QSRbJPJxKZNmygoKLid6/mCL8bsB56/1Q8INY1CKr1GoxF7YPb394t99kJDQ9FqtUu+GDp48CCNjY0YDIYbquzc6FrL5XIWFhY4dOgQk5OTOJ1OkpKSyMnJISUlxScTf11dHXq9HqlUypNPPkleXh4qleqGz68g4iGEntRqNefOnWN+fh6LxcLGjRuXPO9B2H2lpqaKykaBgYFiSGRycpKhoSGxLj0qKmpZQw/C/HL1j3DNhTlLKpUSGBjI22+/TV9fH/Hx8cTHx9/sfHbd59lnqVuCXNJ9992Hx+OhsbGRhoYGzp49S3Bw8K1YdZ8gNMNMTU294XsWFhYwGo0YDAb0ej1DQ0M3bID8cbS0tLBv3z5RyiozM5OMjAyioqLEi3y7N2B0dDTBwcGiZmRHR8ctKVR4PB46OjrQaDTExcXdcsxBMPTJycmLROVXEkLj2MLCQo4fP05nZ+eKKTv5JCAI82/YsAGTyYRMJkOv14vt3lQqlTghLWU879y5c0xOTpKVlUV5efktGTSv17toRykgNDP3BbGxseTk5BAbG0t5eTnR0dE3ZdiUSiV5eXkolUpeeeUV+vv7cbvdfPWrX0Wj0dyx61+Iu8rlctRqNRs3biQjI4MLFy7Q1tbG4OAg3d3dDAwMMDo6ysDAgLiBSEhIWPbNzMchk8kIDQ2lp6cHs9lMQUHBHSfp+Mw6yWQywsPD2bNnD5s3b+bChQv8/d//Pb///e+x2WwUFhb6ZKW5lAgrkqVYtVksFgYHBxkaGuL9998nKSmJjRs38vWvf12MndzOpOL1erl8+TL19fU0NDQAV4TLr24w+3EsLCzwla98hQceeIDPfvazPsn8WglIJBLWrFlDVFQUDodDLHpe5dbYtWsX1dXVPPjgg3zrW9+ipaWF733vexw+fJhvfOMbPProo0t2LL1ez/j4ODExMbfUn8/r9WI2m3n33XcZGRnBZrMhl8vFDiyRkZFLNkYBiUTCnj17bvvzoaGhpKamkpGRQUtLCz09PfzhD39g165dt+P6X8Tk5CQSiUTMMlapVKKsIlxJJJqcnOTll1/mxIkTnDhxgpqaGnFned99993R8f2FVCplamqKDz74gO3bt99RdYRftm7x8fEUFxeze/dufve733H06FFsNhs//vGPV1QG69X09fVx+PBhXn31VWZmZkhLS+Oxxx677e7b6enplJWV0dDQIBakm0wmLly4IDZTFmqdBNauXYtOp/vYXaDJZLpGO/JWkEgk6HQ66uvrGRoa4oknnqC0tPSWJhAh/imsyi9fvkxeXt6KqWmFK3/n1coaCQkJKyYzbyVgtVqx2+03pW4SHBxMfn4+//N//k/27dvHD37wA9rb26mrqyMlJYX169cvyZhkMhkzMzM0NDQwMjKCTqf7yHvK6/UyPT3NgQMHOHnyJDU1NRiNRtH9lpiY6NMyjjtFLpfz13/917zyyiscOnQIk8l0TSej26G2tpaLFy+KpV9arZaMjAzWrVuHVqtFpVIRExPDnj17CA8Pp6uri8nJST744AMsFgv33HPPsikh3Qwej4e5uTlMJhPDw8M4nc47Pm9+MY7C9lxY/ej1ei5durRIJX8lMTAwQGNjI8eOHWNgYIDk5GRKS0tJT08nJCTktr5T+I6xsTFMJhMWiwWLxcLY2JjYuUBY3QlMTEyIK92ra4+u7o/o8XhoaGhgYGBAdBXdquqQTCZjw4YNnDlzhqamJtRqNQsLC6SkpKBWq1GpVB8Z9xCy3cbHx7HZbAQGBjI4OEhaWtqKMo4ej4fe3l5mZmYICQkhJyfntq/nHxv9/f10d3czOjoqxqKioqJuWBIklUoJDw+nuLiYyclJysrKuHjxIgMDA7S3ty+ZcQwPD0culzM+Ps6RI0fQ6XRiyYFEIhEL7p1OJw6Hg/n5efR6PUeOHBEXe4CoA1tQULBsNcA3g0QiITMzUxzjwsLCkrj+R0dHaW1tpa6uDriyYenr68NoNIrdiJKSknA4HGLmuzAeX+cNeL1eMdYJkJCQsCjf4mZwOBy0tbVhMBiw2WxLsqDwW9BPJpMRERGBVCrF6XSuiFq46+HxeHj//fc5fvw4R44cweVyUVpayu7du+/IFbNmzRrginvjzJkzi2TgpqenmZ6eprOzc9GN+O6774olJfn5+eTk5CCXy3njjTeAxULKV38uJSXlI2OpH0Ymk/GVr3yF6elpzp8/z7//+7/T3t7O2rVrueuuu1i7di2hoaEEBARc92FxOp3MzMzQ2NjI7OwssbGx9PX1sWHDhls7ST7G5XKxd+9e+vv7iYyM5O677/aJe+2ThsfjoaamhrfeeotTp05RUlLCAw88wLp160ShhKuTIa5GqVRSUVHBs88+y9NPP83AwAAXL17kz/7sz5ZkUtVqtfT399PV1cU///M/E/P/23vzqLiv8/7/NQvbMBv7jtgEAgFCwmhBG9ZmSZa810naOLZz4jTHTWwnTdKc5PS46dc9iRs1SVs7dhbbaRM7ses9kSVLslYkgSUEAsQ+7OswDLMAszLz+0O/z40QsmOLGUm253WOzsGYYS6f+Xzuc+9zn+f9jo9n0aJF3HvvvcjlcqampjAYDFgsFsbHxxkeHmZ8fByz2czU1JQ4Glm+fDmPP/445eXlN7xI/6VHTYEKTNLCQVKv6u3tpaenRxhWa7VaysrKRHpVkpMrLS1l06ZNQd01ejweuru72bt3LwqFgt27d6PRaISU3V97b7/fj91u54033hA1D4GwSAvIXSKt3vx+v1jpXc709DQ1NTVMT09/rLODa4XP52NsbIwXXniB3/3udwwMDOD1evnyl7/MHXfc8bEqP69EVlYW8fHxqFQqtFot586dEyo4MpnsA+XWpO9Jhq2X/79LXyelDXft2vWxSuslc9AHHniAgoICvvOd73DixAlOnjzJs88+S25uLnl5eSxZsoT169ezdOnSG3r1fSVsNhu9vb28/PLLeL1e4d95I6eKrgeSUEJLSwtxcXEUFxeLPtb169dTWlo67z6Ni4tjxYoVIgV66cJvoTzwwANs2LCBo0ePcvjwYQwGA6dOnaK2tnZOKwT8xWXD7/ezdu1ali5dKopPMjIySElJueEDo9fr5Sc/+QnV1dUAAZO2/PrXv87999+P3W6nqamJtrY2mpubhceuzWajtrZWFDHBxRRvYWFh0Be5Ho+Hjo4O/vznP9Pa2srPf/5z9Ho9aWlpLFmyhMcffxytViv6LqXiRek+dLlcjIyM8Mtf/hK5XM7atWv513/91wWnzxd8p8zOzmI0GnnzzTeZnZ3lnnvumSN/5PV6aWtro6GhgcbGRhwOB3FxcSxbtuy6T0wOh0P4Jw4NDdHd3c2+ffsYHh5Go9FQXFzM9u3bKSgoWPDZlFRNtWTJEu68806Ki4tpbm6mpqZGuJMbjcY5fVrwl92h2+0WaVPpppACo0qlIjo6Gr1eL1pQFi9e/LHGJ5fLycjIQC6X873vfY+zZ8/S3d1Na2srnZ2dmM1ment76ejoIDk5WaRL8/LysNvtdHR0iEbdsLAwFi1aFLTzPJ/Ph9lsZv/+/VgsFrKysqisrBSNv3K5fE4laltbGy0tLdTU1DA+Ps6mTZvYuXPndb//bhRkMhkVFRUMDw9jsVg4d+6cOLPxer2o1Wr6+vpobGwkPz+f+Ph44uLiRHZiZmaG0dFRfD4fk5OTAa1YVqlUZGZmsmHDBlJTU4X4fk9PD1NTU3NUuBISEkhLSwMgOzub5ORkoqOjycrKQq1WX5OePcmgfGpqivXr1xMdHf2RArLX62VychKDwUBdXR1er5fi4mIqKysDkt2IjY1Fq9WKz1MSGqisrKS3t1dILUpIC+01a9aIaxpMPB6PmI+lf1arFZPJxJNPPjnHzDgnJwe9Xo9OpyMxMZH6+nrq6+spLy/npptuYvny5QHphlhwcJQk2F555RVcLhdr164VN+Ls7Cxms5nTp09z4sQJLly4gMfjISUlhXXr1l1zBQav1ysaRr1eLyaTib6+Pmpra2lubqazs5Nz586hUqnIyspix44dbNiwIWCycUqlkvT0dOLj46moqKCjo0OkBDweD+fPnxcyZ5LSzIcp60gBNy4ujsTERDIzM9m9ezfl5eVXVTgUExNDTEwM+fn5vP766xw/fhyj0Sh2XV1dXZw6dWrO+WNVVZVQBbk0OObm5gZNR9fn82GxWHjllVfo7Oxk5cqVovoOLp5xezwescg4cuQIJ0+e5ODBg0RFRbFu3TruuOOOoIztk4hMJqO8vByr1SqUUpxOp5BfGxwcpK2tjcOHD5OcnExWVha5ubmsW7cOuLjIHB8fx+PxCL3iQKLVaiktLRUFa263m7q6OoxGo2itkib8QLjPXw2ScEdNTQ0dHR1YLBbKysqIiIj40Elaep0kB/nee+/R0dFBXl4eFRUVrFmzJiCLzLCwMDHfajQasXh2uVw0NTXN+8xkMhkajYa8vLygGwtLC3ydToderxf3ntFoZGxsTGjlSqxbt460tDSSk5NZunQpb731Fs3NzXz961/nzjvvJDMzMyCxZcEKOZLw7yOPPILJZOLRRx8V1ZVWq5Vf/epXtLa2YjKZ8Pl8pKSkcO+997Jnz56At3F4vd4PLByRNA8HBwfFbqi1tZWGhgZR5Sn1wt17771s2rSJO+64I6iu9pemMFwuF4cPH2ZwcJCOjg5ef/118TN+v/+K16q0tJQvfvGLpKSkkJWVRWpqasBaT/x+P0NDQ7z33nu88cYbXLhwAYPBMO/npDTWpRQUFHD27Nmg6ZZKwuaPPPIIhw4dor+/X/zdcrkcvV7P9PQ0LpdLjM3n8xEeHs4TTzzB1q1b51UGf0w+lQo50kQ9NDREdXU17e3ttLS08O677zI9PT3v5y+/z/x+PzqdjuLiYk6cOBHUQo4rzVvXU3VramqK3t5edu/ejVqtpry8nKeffvpDnwG/38/MzAzt7e0cPnyYU6dO8ac//YnY2Fgeeugh7r///o+dAbpaPigOXItr6vf7xbFbc3MzJ06coKWlBaPRiNls/sAxyWQyoqOjSU1NpaysjBdffPFqs0FX/CMDGhwbGhrIzs4mKipKPGh9fX3Y7XZUKhWbNm1i69atlJWVBVy0eGJigmeeeQaVSiVMN0dGRsROsaWlhZGRESwWi6gU9fl8yOVycnJyyMvLIysri5KSEtLT00lISLimZ1LSDtzhcGC32xkZGfmrr9HpdELpX6VSBVwj1Ol0YjKZGBoaYmRkRPgjSgH81VdfnfcaKbW7b9++K0reBQqfz8eRI0c4e/Ys+/bto7a2FqfTKRY4l+4c4WJ13rJly/jRj35EVlbWQt3EP5XBES5OVC6XS1RU2+12RkdHGRgYoLOzk7Nnz9LW1vaB54rbtm1j586dPProowEf/I2My+XCZDLx8MMPYzAYmJmZoaqqSrhcwMVMj0qlQqVSYTQamZmZEUVwFosFuVxOXFwcDz30EEuXLiUrK+szU009OzvL5OQkNpsNs9mMzWZjeHiYwcFBYRzd2toq0r+RkZGiGKyiooLy8nJ27NhxtW9/xed5wWlVaUtcVFSEw+HAbDbT1tbG7OysKPRISkoiPT2drVu3snnzZpKTkxf6tvPweDz09/djMplQKpXExMQwMDCAz+fD4/FgMBjw+XyEhYUJRRmNRkNSUhLLli0jPz9feL5dD+RyOYmJieK/i4uLr8s4LiUyMpL09HTS0tKw2+3Y7XYA+vr6hG3M5Uhp2WAvKuRyOaWlpajVajweDwqFgsnJSWZmZoQLx+zsLNHR0Wi1WgoLC9m4ceMN115yoyGTyYiMjJx3ziRlXPR6PampqQwODl5xVb9y5cqAtXF8klAoFKjVatatW0d0dDTt7e00NDQIpRm/349SqRT1AaOjo6KCdGBggNjYWBYtWsTatWu55ZZbbgjLqGuJQqEgPj6e+Ph4cnJyADCZTIyMjIgMUHJyshBMj4yMRK/Xs2bNGpYvX/6RNKs/LgERHpdEnfv7+zlw4ABPP/00ZrOZiIgIvvSlL7FmzRqWLFkiWhGCgc1mY+/evTz99NO0tLTMOWAOCwsjJSWF1atXs2LFCrZv3w5cPKeIjY1d6C4ixA3A+Pg4XV1dNDY2snfvXnp6enC73RQVFbF27VrKy8vZuHFjoCacT+3O8aNisVg4cODAvO+XlZUFZaL6JDEwMEB7eztvvfUW7733Hj09PeI8/lK0Wi1JSUls3ryZiooKioqKronZcYh5BCetKiHt0KRUgeRDqNVqhSpJMKvFfD4f09PTWCwW3G63KO+Gv6jOR0ZGCgFl6ftSH1SITzZS+tzlcommcLhYCh8VFUVkZGQgC4Q+88FRet4uJzIy8oawOrqeSF62U1NTzMzM4PF4rnimJ4mOS0ci4eHhIfu060Nwg2OIEJ8hPvPBMUSITxFXfJ5DW6YQIUKECBHiMkLBMUSIECFChLiMUHAMESJEiBAhLiMUHEOECBEiRIjLCAXHECFChAgR4jJCwTFEiBAhQoS4jBvbvyVEiAXi9/vp7+/H4XCI3sfExERiY2M/8/14IUKE+GCCFhz9fj+zs7NzmvElLvXjCpRQdqC4fMyXyqDdaGMN8eHMzs7idDo5fvw4g4OD2Gw2ADZu3Eh5eTkJCQnXeYQhbhQkqzjJ0DkkDBIiaCIA1dXVvP766/zxj3/E6/VefLP/P7Dk5ORQWVkppJPKy8uv9m0Citls5o033uDpp5/GbreTlpbGzp07iYiIICoqis2bN5Oamho0K6YQgcNoNFJfX8+3v/1thoaG8Hg8YtGzaNEiysrKePrpp9FqtVcjafhJXSGFRAAuw+/3MzIyImTeEhISWLx4MZs2bQoFyM8OwREevxKTk5N0dnZy+vRpxsfH8Xq9hIWFERsbS0REBFNTU9TX16NSqcjPz78hgqPFYqGzs5O33nqL3t5e4Y4xOzuLQqEgIiICg8HA+vXrKSgouGZWMp90XC4XVqsVr9crXB6sViulpaXEx8cH7X3tdjtGo5He3l5UKhXp6elkZWUBMDY2Rnt7O7/85S+5++67g2rM/GnC7/djtVoxGAwYjUbhOSr9P5PJhMlkwul0kp+fL5wTsrKyyM7ODpqu8sdlamoKq9XKwMAAAwMDGAwGjh8/zuTkJHFxcSxevJiqqqqgBkeHw0FHRwd9fX10d3ej0+lQq9XExMRQVlaGRqO5Jvek1+tldHSUqakpFAoFTqdTXJ+YmBjS0tKIj48nIiLiQ7Nmkrn4pym7FrTg2NfXR1tbGz6fj4iICDQaDUVFReh0OlwuFxaLBbvdzszMTDCG8LFwu9309vZy7tw5jh07hsPhYHZ2VriOw0Wj4tbWVpxOJy6XK2AP++XpZ+nmujwd7XK5mJ2dFTZM0k5I2pVfikKhICoqKugmpVfC5XLh8XgICwvD6/ViNpsxGAxMTU1hNpsZHx9nbGyMmJiYoE4ADoR8QHIAACAASURBVIcDq9XK1NQU6enplJaWsmnTJgBOnDjB+fPneeONNygpKUGn05GUlBSUcXxa8Hq9YkKvrq6ms7MTq9U652d6enro7e3Fbrezfv16tFotKSkplJeXExMTg06nC/o5r8/nE3PK7Ows09PTc45GJBPdwcFBGhoaaGxspLOzk8bGRgDi4uKwWCxz7M4WirQwlLxZ/X4/g4ODHD9+nLq6Ompra0lNTSU1NZW8vDxycnKEDnQw8Xq9jIyMcP78eUwmE1FRUTgcDsbGxujr6yM9PZ2SkhKys7NJTEwUurnSZ+h2u4VxvGQXp9VqA+6BOzs7y9TUFA6HQzh0KBQKFAqFqCOQ3GS0Wi3h4eEBWdgEJTharVYsFos448nKymL16tXs2bMHnU6H2+3GYrEwNjY2zxrnWjM7O0trayv//u//zt69e4Xx8eVIJrD/+7//i8FgoLi4mJycnAU/7DabTay44aJHo1wuF9Ys0hhramoYHR0VE1JHRweDg4N0d3fP+53p6els3ryZ559/fkFjuxrOnDlDd3c3OTk59Pb2Ul9fz+uvv87w8LA404mMjCQyMpLp6WnhJh9MJEeWBx98EIAdO3ZgMBh4/vnnOXnyJFNTU3z+858P+jg+yfT29lJTU8P3v/99zGYzDocDv98vJkHpa+mY5lLHDqVSyVNPPcXatWspKioK2hilLMW+ffvwer2YTCb+8Ic/kJSUJHZFk5OTWCwW4et6eRBMSkqitLQ0YJO72+2mv7+fF198EavVis/nw+1288ILL+B2u4GLi9mxsTEcDgdFRUUkJSURHR0dkPf/sHGNj4/zjW98g7Nnz2KxWMjIyCA3N5eRkREaGhrEz+p0Onbt2kVFRQXZ2dkUFhYC0NzcTFNTE4ODgwwNDaHRaLjtttu49dZb0Wg0ARmnz+fDaDTywgsvcPDgQaqrq5mdnSU+Pp709HRaWlqYnZ1FpVKxfv16HnvsMZYtWxaQeoKgBMfjx4/T1taGQqEgKyuLBx54gC1btqDT6VAqlSgUCpRKJVqt9rqmsyRH+VdffZXW1lYcDsdffc3MzIy4edLT0686OE5NTTEwMMBLL71ER0cH/f39AGg0GuRy+bxVucViER6F0us9Hg9KpRK5XI5WqyUmJobCwkIiIyOvqW1Qc3MzBw8e5MiRI4yPjzM9PU10dDQzMzPYbDbGxsbERCCTyZienmZgYIDBwcGgjUmpVBIeHk5YWBizs7PCqUWpVAo/z29961uEh4cH7EH+tOJ2uzl//jwvvfQS4+PjuN1usQMCyMzMpLy8nLS0NBGg6uvrxevlcjkKhSKgu7HL+dOf/sTZs2d5//33GRkZES5Bw8PDDA8PI5PJxPeke0EaT1RUFAkJCdx2222sWLGCFStWLCgr1NbWRlNTE0NDQ5jNZgYHB6murha7HL/fT0REhHhmV65cSVVVFWlpaeLoKdiYTCYR3CwWC2FhYWRkZFBaWkp0dDSdnZ1iozA9Pc3hw4c5e/Ys0dHRInDbbDampqZwuVw4nU5UKpXIGgQyOPb09FBfX09jYyOzs7P4/X5sNhvd3d3C8cThcHDmzBkOHTqE1+sVtoQLIaDB0e/34/V6aW9vZ2RkBLlcLi54SUmJCCQymYyIiIjrfs5js9no6+sTuzKv14tMJiMpKQm1Wk1kZCSDg4M4HI45k7tCoSAsLOyqV5dGo1G8r1QIMDY2Bly0/JHL5czMzIhdpIRkcZOUlCQeIr1eL9IJsbGxYlWXnp6+wKvz0RkZGeHIkSO8++67c65TRESEOHeKi4sTlYAKhQK9Xh9UCzO1Wk18fDxxcXFYrVZMJhMWi4W4uDhhnxby8fxo9Pb20traSnNzs0hryeVywsLCWLx4MaWlpVRVVZGamorb7cZqtc5ZuctkMtLT04OyCHE6nQwODnLkyBFqamqor68X96AUvO12+7xnVS6Xo1arSU5OJjk5mcLCQm655Rby8/PJysq66mfb5/MxODjI6dOnhXO9xWJhdHQUrVaLSqVCrVZTWFiIXq8nISGBiooKNmzYgE6nEzUOwcRut9PR0cHJkydFxio+Pp6bbrqJFStWoNFoGBkZobm5mZmZGWZnZ3E4HIyPj4sAfynSc65SqUT6OBBMTU1hNBo5deoUBoMBi8Ui5mdp/k1NTcXlcolFWUdHB4sWLcLn8y04tRrQ4Cjlhtva2hgdHUUul1NSUkJSUtJ1D4RXoquriz/96U9UV1fPMSOtqqqisLCQ9PR0fvvb32IwGETwio6OJj09nfXr11+199rJkyc5ePAgv/vd7+bsBgGRu5fJZCxZsgSVSiU+ZIVCQWxsLLfddhsACQkJIg1zPSvrxsbGqKmpEWlTuDghpqSkkJSURGZmJjExMcjlcuRyObGxsaxevTqoRU3p6ek4HA7Ky8s5ceIEDQ0NtLW1sXr16humMOSTwp///GfRDgMXP9uwsDD0ej2PPvooa9asobi4eM5rpBR2sBkZGeF//ud/eOWVVzCZTHMmb+levNKzERYWRnZ2NnfffTeVlZVs3rw5IONxOp309PRw8uRJzp49i9/vJzo6muzsbFasWEFeXh5Lly6loKCA1NTU67JAMxgMvPnmm/zmN79hZmaG1NRUSkpKePjhh0lKSmJsbIylS5fyk5/8hK6uLmZmZlixYgXnzp3DZrPNyQAolUpiYmLIyckhIyODwsLCgFXzGwwGjhw5wp49e7BareJzXLduHXFxccjlcoqKihgdHWVgYIDa2loGBgbo7OzE7XYv2Bsz4MFxenqaoaEhJicnUSqVN3Tl0szMDEajUax0VCoVhYWFPPTQQxQVFaFSqaisrGRgYACj0QhcNM9NTk4WH87Hwe/343a7+cMf/sCxY8dwuVz87d/+LW63m7GxMZqamqioqKCkpISVK1dSVlaGSqWacw0VCgUqlUp8HRYWdl0DY3NzM8PDw+h0OiYnJ/H7/URGRrJs2TKeeOIJli5dKg7PJeRy+TUxxU1ISOCrX/0qXV1dGAwGfvOb31BcXIxWqw2V6X8MrFarKHKRnpWsrCx+8YtfUFpaik6nuy7jqq+v58SJE/z2t7+dFxiLioooKSnh3nvvveJrlUol+fn5xMXFBeR8z+fz4XK5+PnPf86hQ4dobGzE7/ezcuVKKisrefjhh0WxiJTuD/YO8XK8Xi82m41f/OIX1NTUiGOkFStWUFVVRUpKCgqFgpSUFLZs2UJhYaE4EsnPz6e7u3uewbVUhJOcnIxGoyEsLAytVrvgsb711lu8++677N+/n6ioKKqqqigrK2Pz5s2kpaWJzZZ0bOJ0Ounv7+f06dPExsaKtP9C4k9Ag6M06eXn5+NwODCbzYH89QFHoVDMSe15vV4mJiZQKpVER0ejVqvJzMxEr9eL/LtcLp+zm/u4+Hw+JicnxUooJyeH5ORkwsLCGBwcJCcnh7S0NHJyckhNTb3hVVyMRiNjY2NzVpSRkZGUlJSQlZVFSkrKdRtbVFSUKJzq7u4Wk2lpaSkZGRmhAPkR8Pv9mM3mOZNicnIy+fn5FBcXo9frr/lOXKoVOH78OIcOHZoTGMPCwli+fDk333wzK1as+MA2MblcTkJCwoKORy7F4XAwMDBAdXU1XV1deL1ekpOT2bBhAzfffDOLFi267s+yyWSiurqa+vp6RkZGxEInMjISn89HXV0dbW1tYgMQERGBy+VCqVSSkJBAZGTkvLSqdHyiVqsD8vdJG4ja2lpxHnrHHXewfv16ioqKWLJkCdHR0fOeXZ/PR1RUFHK5nPDw8IBszAJ6VyuVSjQaDatWrRKl+zcyUrtDRESEKNro6+sT1XhqtZqoqCiioqICVuovlSErlUp8Ph9arZbS0lIKCwvnrShv9Mnb5/MxNDTE0NAQRqNRpIMjIyPFzvt6EhERQU5ODiUlJUxOTtLS0sLbb79NeHg4CQkJ1318Nzper5eZmRmGh4exWCzi+ykpKWRlZaFQKMQiT8poKBSKoGeL/H4/k5OTvPfeexw8eHBOYNRqtezevZtdu3ZRXFx8zZ4hm83GhQsXOHPmDBMTE0RERFBQUMDWrVtFRbZUTHJ5YZJUwSqd5UZGRqJQKAI6dr/fz+joKG+99RZtbW1zFjtS5mrv3r288cYbqNVqysrKyMzMRC6Xo9PpKCgoIC4uLugBXso+1tbW0tvbS0REBHfddRfl5eUfutCWy+Xo9XoqKioCNpaABkdpFbFjxw7Gx8c5c+ZMIH99wCktLSUzM5PGxkbef/99BgYGgIvqPlFRUWzbti2g7yeTyYiKiuL+++8nJSWFl156iccffxydTkdycjK7du1i48aNLFq0CKVSKXaUNyJut5vR0VF+9atf0dzcDPwl5Sb1N17p8P568K1vfYvNmzezb98+fv3rX4vCpvXr1wds5/Bpw+Vy0dTUxJ49ezh06BB2u118vufPn6e5uZlf//rXwMX2h6KiIr7//e+Tn59PYmJi0MdWXV3N2NjYnHtMKqp57LHHiIqKumafq9vtprOzk2effVZkmCIjI3nooYcoLCzE6XTy/vvvk5SUJIpMpGvp8/mwWq28/fbbTE1NkZCQwFe+8hVR8xAoJNGDhoaGec/l3r172bdvH4Domz579qy4fiqVitdee409e/ZQUlIS1Os6PT1NR0cHnZ2dxMXFsXHjRrZu3XpdalaCkg+RtrWzs7Ps37+fiooKkpKSaG9vZ2JiArfbjUKhYPHixSxatOi6aVxKzfIZGRlcuHBBfH9wcFCkHQJ9I8hkMtauXSsq9xoaGjCZTHR1dfHaa69RXV0t0gYlJSWi4jInJwe9Xo9Op7uuqUq4KPLQ1dXFCy+8gMFgEOdR0rWampri7bffFiXdsbGx13O4osVFJpNx5MgRzp07x9jYGDMzM1RWVl4XsYQbldnZWcbGxjh27Bi1tbWcPn1anE1JfYxSVbrH40Emk2E0GnG5XPzsZz9j5cqVlJeXs2XLlqCNUUqrXi6AYTabOX/+PD/96U9RKBRoNBoqKytJT09HrVYHLVPQ399PS0sLzc3NYkxOp5OXX36Z48ePI5PJMBgM6HQ6nE4nVqt1Tl+ox+Ohv7+f2dlZIiMjsdls5Ofns2TJEjZt2kR6evpVn4v6/X5mZmb42c9+JoqqLg+OUluLJJMJF4P2pa0cTU1NvPHGG/T29opex2Ck0ycmJjh06BDT09NERkaKe7GoqOiKcSI8PDxowToowTE6OhqNRkNkZCTt7e3U1dWhUChoaGgQB7xyuZzh4WGWL1/OkiVLSE5Ovi5pRCltcOnKpK+vj6GhIRwOR1AeqMzMTJRKJdPT06jVajo6Oujq6hL/pLy7wWAgKSmJpKQkCgsLSUhIID4+nsWLFwslCq1We013lzMzM3R3d3PmzBn27dvH5OTkvIfN6XTS1NRER0cH6enp1z04hoeHk5iYSFhYGKtXr+bkyZOcOnWK3NxcEhIS8Pv9QZWy+6Tg8Xiw2+28//77HDx4kPr6egYGBkQvqFSur1arxQLYZrNhtVqZmJjg8OHD2O12nE4n69evD9rEJfX1xsbGotVqhdiIzWajq6uLiYkJZDIZer0et9tNUVER6enpLFq0CLVaHdAx+Xw+mpubOX/+vKhoh4s7sNraWrFJMJvNRERE4PV6cblcxMfHz5nvZmdncblcjI+PYzQaMRgMdHZ2Eh4eTnl5Oenp6Vd1j0pzyfHjxzl27BiAKJALCwsThYXh4eHExMSg1Wrx+/24XC56enqw2WxCNae6uhqTySQCVUxMTEB3dFLNR01NDW63G7vdTn9/P4cPH2ZycpLU1FTxN8HF+yAxMZG4uDjRQx9IgiY8/vLLL/PTn/6Uc+fOiVaFy2/KiIgIVq9eTVVVFd/85jfFmcW1xOl08uSTT/Lmm29y/vx5McZbb72VPXv2kJubG9Qxeb1eurq6OHfuHD/+8Y+FFJPRaBQqJBJKpVLsdKuqqqioqGDLli2kpKRck4WF1+ulqamJ3/72txw/fnyOisblyGQy/uZv/oYdO3bwwAMPBH1sH5Xx8XF+9KMf8dJLLyGXy9m6dStVVVV86Utf+jif8yc1D/uhz/Pw8DCNjY08+OCDTE5O4nK5RC9ZZmYmS5YsYeXKlaxcuVJkMg4fPsz+/ft54YUXMJvNqFQq8vLyePPNN0VRR8D/CL+f6elpnn76aQ4cOMDRo0c/8OfgYuXqmjVr+MIXviBS6YEax8zMDHfddRfHjx+f0w72YYSHh/PlL395TjGgxWLBYDBw8uRJ8T3pmOquu+5iy5YtV/UcSWnbu+66SwRHlUqFXq8nJSWF++67D7VajV6vZ8mSJeTm5uL3+5mYmOCFF17g2LFjNDU1iWp9qVjxv//7v1m1alVA27EsFgsHDhzgC1/4wof+nPS5hoWFsWPHDj73uc+xefPmhaTzr53w+EfF5XJRV1fH5OQku3fvZvHixajV6ms6hoiICL72ta/R3t7+oZN9sFAqlWRnZ5OcnEx5ebl44Hp6eqirq2N0dJSJiQkh5m4ymYTw87vvvstzzz3H9u3bqaysZNmyZcTExARlnFarlZ6eHh555BGhnxkTE8Pdd9/N4sWLSU9PZ2BggDfffJOamhoAUlNTg37+9HGJiYnhvvvuo7CwkGeffZYjR47Q0dHBxMQEX/3qVwNShv5Jpbm5mb1794psQGxsLOXl5TzyyCOiV1WlUqFSqcTEvnLlSsLDw/H7/TzzzDM4nU5GR0d5/fXXueeee8jIyAj4OGUyGSqVigcffJDNmzdz+PBhzpw5w8DAAMPDw8DFRa/T6cRut4s+5erqap544glWrFhBdnZ2QMYi7cwk4QEJqSVCr9cTFxdHXl4et956qxChSEtLm7NZ8Hg8nD59Gq/Xy7lz54Tyi8vlYmZmZo7I+8dFoVCQl5eH0+lEp9Nx9913k5ubK7I6UkFVZGSk+FwTExN56KGHWLVqFWfOnOHZZ59lfHwcl8vF9PQ0v/jFLzCZTNxxxx1C0H+hqFQqsrKyuP322zl06BB6vZ6srKx5O0IpFT09Pc3Jkyfp6+vj7bff5t5772X9+vUBywJds+AolQenpqbi9/uZmpqivb0du93O6OgojY2NpKSkXPPgKCkuLLRhdCFIakFSQ7Db7SYxMZGYmBjMZjNWq1WkGCQx9M7OTmw2G2azmbCwMMbGxujs7GTz5s2kpKQE3FZreHiYM2fOCNUMuVxOcnIyFRUVFBcXk5qaSn9/P+fPn6e1tRW3241Go7nhKkKVSqVQQDl37hxHjhxhdHSUQ4cOsXbtWvLy8j6zPo9SZkKn01FUVEReXh7Lly+nvLxcTOqXo1arhXby73//eyGyfeTIETZt2hSU4Ah/SalFRUXh8/lITk7GaDQKowC73Y7NZmNkZISpqSnGx8cxGAwcOHAAtVpNampqQHa1SqWS7du3k5aWhtVqFWlKhUJBXFwcarUarVZLeno6q1evFhZpl19L6Rz1zjvvZGxsjPHxcaGStZD0tEwmIzw8nI0bN1JQUIBarWbt2rWkpKR86EI6LCyMpKQkli5dSmRkJKOjozQ3N9PX10dPT49wMlEoFNx+++0kJCQseM5RKpWkpKRw6623otVq0ev1ojjxctxuN1NTU6Lx/+zZs6jVaiEMEIgdbdCCo5THDgsLQ6lUotfrWblyJZs3b8bv99Pd3U1/fz8zMzM4HA6OHj1KRUUFycnJwRrShyK1IdwIlYvh4eGkp6fPq1bz+XzY7XbOnDnDiy++SGtrK729vVRXV3P8+HHhbi8d4gcy1drV1cXBgwdFP6PkuHDTTTdRUFCASqUiKiqKzMxMEhISsNls6HS6oAsoXw3SWcldd93F5OQk586d4+DBg6xduxaZTPaZDY4pKSmUlpZSUFDAww8/zOrVqz9ScEtISGDVqlUkJiYKPd29e/fy2GOPBX3MGo1GpHovRRLz7+7uxmAwUFtby//93//xyiuvkJGRwfLlyxec1ZDalv7pn/6JyclJOjo6WL58+VXJIkqKWHl5eVRXV9PQ0IDb7SYtLQ2VSnXV52nSGL/4xS9e1eul7M/ixYvZv38/R48eZWBggPHxcfbt20d9fT2pqalUVlYuODjK5XLS09O57777uOWWW0T690rzmNT4f+rUKZ577jneeecdXnzxRcxmM1u3biUnJ2fBx2FBC45VVVVkZWVx+PBhcnJyyMrKoqioiLCwMJEuADh48CCtra3U1tYyMjJCVlbWDbfbuFGQChGqqqqorKzEZrMxODjID37wA1paWhgbG+M73/kO3/jGN9i0aVNAHS8kiSiFQoHf7ycjI4N/+Zd/YfHixURHR+P1ejl48CB1dXUMDAyg0+lYtWoVK1asCNgYAolKpeLmm2+mpKSE/fv38/DDD3P27FkKCgpYvXr19R7edaGgoIDc3Fxuv/12IiMjr2pCls7JsrOzr+tzHBcXR2xsLLm5uVRWVpKbm4vFYuG9996js7OTuro6duzYEbD30+v13HTTTQGpT5AW6R6Ph7a2NvLy8ualba8lkp7zF77wBXJzc7HZbOzfvx+n04nJZOK1114jOzs7IFX00k5Xcmv6oM2KQqEgOjqam2++mcTERG6++Wa+853vsG/fPoxGI2lpaWzdunVBGcGgBUetVktubi7h4eHodLp5uwi5XE5ERISo5pIMN91ud8Aeqs7OTsxmM1NTU8TGxpKTk/ORpa6cTidjY2NkZ2df8yKhD0Mmk6FUKlEqlYSFhREZGck//MM/cPr0aWprazl58iR79+7F6XQGNDhqNBqhKZuZmUlhYSHFxcVERUXhdruZmJjgz3/+M11dXUL5R6PR3FDX7nKUSiWxsbFC97WxsZGbb775eg/ruiFlez7uzmdiYoK6ujrGx8dxOp2Eh4dTVlYW0CMS6SxecoKQtHs/KDMhBRhJ0Uomk4kWig/yQV0IkqD+QpAEF4xG4xxPyrCwsICI9E9NTdHb24vP5yMxMfFjZemkRU90dPSc3ZxUZRtox5WPmsFTKpUsWrQIl8vF0qVLaWtrw2q10tvbu+DPOGjBUTpH+7AyfsmwVzIodbvdAbnI0oHtuXPn6O3tZWJigry8PGJjYz9ycLTb7fT19c1L19xISOLPt912m3DrPnHiBGfOnAm43qVWqyUnJ4etW7dSXFxMXl4eqampcwyNT506hclkIjIykry8vICfewYDr9crHqKRkZF5VmEh/jpGo5GamhosFguzs7NER0dTUVERsOImyf+1r6+PsbExLBYL8fHxop3pr+F0OrHZbBiNxqDaZi0Uq9UqMkDT09PIZDLUajWJiYkLboeamZlhcHCQU6dOiR7rqznCkjY1lwav663kpdfryczMJDc3l97eXtxuNyaTacGf9XWrVvX7/fT392O328W2PVD6fFLF3A9/+EMGBwfxer2sW7eOkpISFi1a9JF+x8jICHv37uX222+/IR1FLkdyW9+zZ89HLin/OGRnZ5Odnc3OnTvnfF/Sk3zttdcwGo1ERESQlJREeXn5NS+uuhqqq6s5deoUXq/3mqi7fBrp7Ozkueeew+PxEB8fT2lpKX//938fUHeGl156iaeeegqbzYZWq+Uf//Efyc3N/Uif1+nTp4Xm6Y1MV1cXzzzzDCMjI7hcLqKjo9m5cydf+tKXKCsrW9DvPnr0KO+++y7PPPMM3/zmN68qBerxePB4PHi93jm9hje6wcTVEpTgaLFY6O3tFTdjRUXFnKAk+SjW1tYyNjaGSqXi9ttvD9h5o+TyPjo6KiygOjs7OX36NH6/n5SUlAUZFd+ImM1m+vr68Hq9cyywgoXH48FsNvOf//mf1NXV0dHRQUFBATfddBM33XQTu3fvDkhJ9fe+9z06OzuJioriu9/9rhCCXwjt7e10dHTQ2trK/v37MRgMzM7Ocs8997B8+fIFj/mzxPPPP8+BAwewWq3Mzs6yePFi1q5dK3xJA0F/fz+///3vRaoxIiKCqqqqv3p/Wa1WDh48yIsvvigUsCT91WtZdCW5YbS3txMTE0NeXt6889zOzk6amppob2/H6/WSl5dHWVkZ3/72t8nLy7vqucpisfCb3/yGd955B6vVyo4dO4Rv5UdFMhN+6qmnOHXqFO+//z4ulwudTkdWVhYPP/xwwFpjrgaPx4PT6RT6tBqNRtS3LISgmB2fPn2alpYWWlpaANDpdEL6TGpK7erqwmQy4fV6SUhIYOXKlcTGxgbkjEpKw0hpW7lcjtlsFqmftLQ0li5dKlTcdTqdkEqSkA6GPwm4XC4MBgNnz54VlaTB3LWNjo4yMjLChQsXOHXqFP39/Xg8HtauXcuaNWsoKSkJmC5kW1sbdXV1eL1eli1bRmFhIRkZGfOMcyUVFymd7Ha7RcEAXHyAHA4HRqOR1tZW2tvb6ezspKurC4VCwZYtW1izZs01NYn+JONyuejv76e6uprm5mY8Hg9JSUkUFxcHrDBFwuFw0N/fD1z8nKOjo8XZ4eULQWkiHxsbo7u7m4MHDwplLoVCwfLlyykoKLhmGQJpEfn+++8zNjbG4sWL57QZSMWJtbW1nD17FrPZjFKpJC8vj3Xr1rF06dIFtXI4HA4OHjzI+fPn0el0VFVVkZmZ+ZGPXVwuFzabjfPnz3P06FEaGxsZHR0FLlYpFxYWsnTp0uvWH+x2u+no6KCpqYnBwUGRucrJyVmwYk5QzI5/8pOfcOHCBdFzlJSURExMDDfddBNOp1P0zLndbqKjo8nIyGDz5s0Ba2DX6/UsX76cN954A/iLTuBrr72GUqlEpVKxatUqNBoNERERLF++nL6+vjm/Q3KKv9HTBX6/n/HxcY4cOcKLL76I1+slMzPzqhpzJd3Mv+bkXV1dzeHDh3n11Vex2WxoNBry8vJ49NFHSUtLC2hgjouLQ6VS0d3dzeOPP05JSQlLly6lqKhozmcTFxdHcXGx2PlNTk4yODgo1FMsFgsDAwO8++672O12ANuHBgAAC1xJREFUUUSQn5/P5s2b+ed//mfi4+Nv6AKiYCN97n/tnvf5fJhMJv74xz9y7NgxhoeHUSqVrF69mp07d85LvS8UyVzZ4/Gg1+tJSEigpqYGnU43b3fg8/kYGBjg7bffFi1O0plyVFQUjzzyiFD4uRbY7Xaampp44oknKCsrQ6fTzbnHPB4PRqOR559/nrq6Oux2O4mJiaxatYo777xzwf3XMzMzHDhwALg4D6empgolMsmc/PLPW7oPJKWc1tZWfvjDH9LU1CSk+mQyGfn5+WzZsoWYmJjrMk/6/X4sFguvvvoqL7/8Mh0dHZSWllJcXExpaemNtXOUguPg4CCTk5Pi+/v27cNkMiGXy3n11Vepq6sTW/O8vDwKCwtJTEwM2MQUHx/P2rVrKSgooKenB4vFIh4QqUlZamAFeOedd4S4skRubi4PPPDAdRUH+GtIqjn/7//9Py5cuMDIyAjp6el897vfZdOmTR/797366qu89dZbnDhxQhxmS+LIl37tdDqFUkZJSQlVVVV87nOfIzs7O+Cp6h//+MdMTU1hs9l47rnnOH36NK+88sq891EqlUL7ExBnI3a7HUBMBNu3b0ej0aDRaMjPz2fNmjWkpaUJpZDPIn6/n/r6ejo6OhgfH2fjxo3Ex8eL6yQxOztLa2srr7/+OidPnqS2tpaZmRk0Gg05OTk8/vjjAVNLuZTc3FwefvhhnnvuOSYmJrBYLHR0dPDTn/70iveblGZzuVy4XC4yMjJYtWoVf/d3f0dVVdU16b31+XxMTEzw1FNP8d5779HY2Mi2bdtEOldSwqmrq+OPf/wjjY2NQvzjySefZNWqVUJLdKFIz63BYODf/u3f2L9/P1lZWeTm5rJu3bp59/3MzAxms5l9+/bR3t7O8PCw0MSW7Paqqqq47bbb2L59+3UJjE6nE7PZzLPPPsuBAwfo7e1Fr9fzxS9+kaqqqsAIPARgnALJ062wsBC32y0soIaGhvD5fMjlchoaGhgeHmZqaoq0tDTWrFnDtm3bArpij4yMJCMjg6985SuiUd7hcOB0OpmcnKStrW1e0crluyVJQ/BG2zn6fD4cDgdDQ0NcuHCBd999l8bGRqxWKyqVijvuuIPi4uKrOu/r6ekR1l2XB8RLv5bK1iWH7g0bNrB48eKg2D/FxcUJAendu3ezZMkSBgcHcblcdHR0iOpSqWxfetD9fr+ompU+RymtFhUVRUREBImJiSxatOiK5qmfNdxuN62trZw+fZrW1lZR6i+167hcLiwWC0ePHuX999+nq6sLq9VKTEyM8C3MyMgISjo/KSmJW265hebmZjo7OxkdHf1IVcWSmMb27dtZtWoVy5cvFyoqwcbn8zE8PEx7eztdXV24XC6xE6uvr6evr4/Tp09z/vx52tra0Ol0FBYWUl5eTkVFBSkpKQGZEzUaDffffz+nTp1iZGQEi8VCc3MzIyMjdHR00NHRMe81kjRba2srJpMJm82Gx+MR1nrFxcXs3r07qHKVH4bP52N8fJyGhgaRudDr9dxzzz2sWrWKzMzMgLxPwIOjJE8kmVa63W6sVismk4nm5mahmqPX6ykpKWHTpk1s3bo1kMMQZrZScGxpacFutzM5OUlvby82m03oR3q93nkNtiqVKqAFBfAXW5ir3VlJY3U4HAwPD1NXV8exY8d48cUXgYutFllZWdx7771kZWVd1XmpyWSit7cX+EufmJS3l4Ke3+8nPDxcGEBv27aNZcuWBc3VQgp4YWFhbN26lU2bNuH1epmenmb//v0MDg5+4Gvj4uLYtm0b8fHx4u/4tFbWLZTw8HAmJiY4f/48x48fR6fTsWjRIrZs2YJOp8NutzM0NMS+ffuwWq14vV7UajXZ2dmsWrWKXbt2odfrg5KWjouLY/369TQ2NqJWq2loaMDhcODz+YR11uVIhTclJSViwXgtz5NnZ2fp7u6mr69PiHbbbDY6Ozvp6enhzJkznDlzhr6+PiIiIiguLmbNmjXcdttt5OfnB8xhQqfT8bWvfQ2v10tdXZ0wrp6YmMDr9XLixIkPfK20SwwPD0elUpGTk0NpaSk7d+5k9+7d1zSrJp0vS1qzHR0dHD16lHPnzqFSqcjPz+fBBx8kPz8/YAu0oLhyOJ1OBgcH6ejo4MiRI+zbt4+WlhZkMhnbtm2juLiYZcuWsW3btnl2UcHg0nM0qVjn1VdfpbGxkfPnz1NfXy/SrjKZjPvuu49Nmzaxa9eugOXT29vbGR8fv6rGfJ/PR11dHfX19TQ0NPD2228LM2Gfz8fKlSu5++67ufXWW1myZMlVj/fJJ5/kV7/6FT09Pfj9ftRqNenp6fMWChUVFaxcuZL77rvvugabj9LHFKRdwic1un7g8+z3+7Hb7fT09PDQQw+JXfnlk7T0nCQlJfH5z3+eBx54gOzsbLRabdDvA6mYz2q14vF4xLny8ePH5/1sZWUlRUVFpKWlodFoguI9+GFMTk7ywAMPiEIcuBhspGs0OzuL3+9Hp9OxdetWfvCDH1BQUDCvhzAQ+P1+zGYzPT09vPfee9TU1NDa2nrFXaOETCYjLS1N6JQuXbqUjRs3kpqaikajuaaZFpfLxejoKL29vbzzzjvU1NTQ39/P8PAw0dHRfO1rX+Pee+9l2bJlV3vtrviioARHqWJMcr0eGRkRZz+JiYno9Xr0er3w2LuWk6skEDA0NITFYhH/Lr0OkgFzcnJywCpW/+u//ovq6mr+4z/+g8TExHkLAuma2Ww2kfLt6emhra1tjpiBxWIRaYT09HTKy8u5/fbbyc3NJTU1dUGrppaWFtra2uju7hbBMSMjY56ruqQq81F7Rj+FfOqCI/ylZuDo0aPs3buXpqYm2trasNls+P1+lEolubm5rFq1imXLlrF582bRfnWtgo+0U5TcMBwOhyj8u5S4uDi0Wi1RUVHXPDDCxUX4qVOnOHbsmBC4n56eRqfTkZ6ezq5du1AqlWg0GtauXUtxcTEajSZoc6HH42FmZgaj0cjY2Bi9vb0YDAYaGxvnzH1SgWRhYSFqtVp4JUrtL1FRUdekaM1gMDA0NER/fz8XLlygp6eHsbExRkZGmJiYQK1Wk5mZKVKpS5YsWUjF7LWzrJIsZVQqFYmJiRQXFwfjba4KqUXjWvfldHd3c+rUKc6cOUNaWppokJbsfjweDxaLZY50lFSiXFNTg91uJyoqiqioKLKyssjPz6egoIDKyko2btw4L4BdDfn5+SxatIihoSHgYnXflQJ5iE8nCoVCaPe6XC4SExOFiLzP50OpVLJkyRI2bNhAcXHxdXmuJelEmOtLeKMRHh5OZWUlSqWSuLg4EZwkp4ldu3YJ+ceioqKgB5ywsDAh45mTk8PixYspKioiJSVlTgZGclkpKytDoVAQHh5+zSq4e3p6cLvdxMXFMTY2Rk9Pj6irmJycxO12ExYWhkqlIjs7mw0bNrB9+3aSk5PntXYFgqCZHYeYy2OPPcYvf/lL8vPz56QpU1JShOu11D94pZ7LxMREysrKKCwsZOXKlWzcuJGEhITrsioO8encOYYIcT159NFHGRkZ4e677yY6OpqhoSGam5v59a9/zfLly4UiklqtZtmyZezcuTNQKkzXLq0aYj5jY2NMTk6Khl5pl6dUKvH7/aK4wOv1XvEsTTIjjYiIICoq6pqmskLMIxQcQ4QIMGNjY3g8HrRaLXK5HI/HI6qkIyMjhf2hXC4nMjIStVodqDR0KDiGCBEgQsExRIhPD1d8nj/bzV0hQoQIESLEFfhreblP6go5RIgQ8wk9zyFCfERCO8cQIUKECBHiMkLBMUSIECFChLiMUHAMESJEiBAhLiMUHEOECBEiRIjLCAXHECFChAgR4jJCwTFEiBAhQoS4jP8Ph9W6pfIx1pcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_digits(instances, images_per_row=10, **options):\n",
    "    size = 28\n",
    "    images_per_row = min(len(instances), images_per_row)\n",
    "    images = [instance.reshape(size,size) for instance in instances]\n",
    "    n_rows = (len(instances) - 1) // images_per_row + 1\n",
    "    row_images = []\n",
    "    n_empty = n_rows * images_per_row - len(instances)\n",
    "    images.append(np.zeros((size, size * n_empty)))\n",
    "    for row in range(n_rows):\n",
    "        rimages = images[row * images_per_row : (row + 1) * images_per_row]\n",
    "        row_images.append(np.concatenate(rimages, axis=1))\n",
    "    image = np.concatenate(row_images, axis=0)\n",
    "    plt.imshow(image, cmap = matplotlib.cm.binary, **options)\n",
    "    plt.axis(\"off\")\n",
    "\n",
    "\n",
    "# 查看数字3和数字5的例子\n",
    "cl_a, cl_b = 3, 5\n",
    "X_aa = X_train[(y_train == cl_a) & (y_train_pred == cl_a)]\n",
    "X_ab = X_train[(y_train == cl_a) & (y_train_pred == cl_b)]\n",
    "X_ba = X_train[(y_train == cl_b) & (y_train_pred == cl_a)]\n",
    "X_bb = X_train[(y_train == cl_b) & (y_train_pred == cl_b)]\n",
    "\n",
    "plt.figure(figsize=(8,8))\n",
    "plt.subplot(221); \n",
    "plot_digits(X_aa[:25], images_per_row=5)\n",
    "plt.subplot(222); \n",
    "plot_digits(X_ab[:25], images_per_row=5)\n",
    "plt.subplot(223);\n",
    "plot_digits(X_ba[:25], images_per_row=5)\n",
    "plt.subplot(224); \n",
    "plot_digits(X_bb[:25], images_per_row=5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 左侧两个是被分类为3的图片\n",
    "# 右侧两个是被分类为5的图片\n",
    "# 大多数错误分类的图片看起来还是非常明显的错误\n",
    "# 原因：SGD是一个线性模型，它所做就是为每个像素分配一个各个类别的权重，当它看到新的图像，将加权后的像素强度汇总，从而得到一个分数进行分类\n",
    "# 数字3和5在一部分像素位上有区别，所以分类器很容易将其弄混\n",
    "# 通过上面图像，如果书写3 的连接点左移，分类器可能将其分类为数字5，这个分类器对图像位移和旋转敏感\n",
    "# 减少混淆的方法之一，就是对图像进行预处理，确保位于中心位置并且没有旋转"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多标签分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 为每个实例产生多个类别 ，例如 照片识别多个人脸\n",
    "# 分类器经过训练可以识别小红，小白，小军，一张照片 里有 小红，小白\n",
    "# 经过分类器，应该输出[1,1,0]， 是小红，是小白，不是小军\n",
    "# 输出多个二元标签的分类系统称为多标签分类系统"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
       "           metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n",
       "           weights='uniform')"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "\n",
    "y_train_large = (y_train >= 7)\n",
    "y_train_odd = (y_train % 2 == 1)\n",
    "y_multilabel = np.c_[y_train_large, y_train_odd]\n",
    "\n",
    "knn_clf = KNeighborsClassifier()\n",
    "knn_clf.fit(X_train, y_multilabel)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False,  True]])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# knn支持多标签分类，不是所有的分类器都支持\n",
    "knn_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多输出分类"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例子：构建一个系统去除图片中的噪声，输入一张有噪声的图片，它将输入一张干净的数字图片，分类器输出是多个标签，一个像素一个标签，每个标签多个值0到255"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 增加噪声，目标将图片还原为原始图片 创建训练集和测试集\n",
    "noise = np.random.randint(0, 100, (len(X_train), 784))\n",
    "X_train_mod = X_train + noise\n",
    "noise = np.random.randint(0, 100, (len(X_test), 784))\n",
    "X_test_mod = X_test + noise\n",
    "y_train_mod = X_train\n",
    "y_test_mod = X_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "some_index = 5500\n",
    "plt.subplot(121);plt.imshow(X_test_mod[some_index].reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.subplot(122);plt.imshow(y_test_mod[some_index].reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [],
   "source": [
    "knn_clf.fit(X_train_mod, y_train_mod)\n",
    "clean_digit = knn_clf.predict([X_test_mod[some_index]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(clean_digit.reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
